MySQL数据库主从同步与单张表主从同步
问题描述:
MySQL数据库是现在常⽤的数据库,由于⼀些业务的需求,多个不同服务器上的数据库需要数据同步或者部分数据同步。如何同步?怎么同步才简单?
⽅案
⽬前有以下⼏种⽅案():
1. 通过逻辑代码层⾯去实现,定时去更新。⽐较⿇烦需要对⽐数据库之间数据,耗时,费事,占空间。
安全员证2. 通过在源数据建⽴触发器实现实时同步。缺点是 降低业务系统性能,影响到业务系统
3. 通过⽇志⽂件进⾏同步,有⼀定的延时。
4. 时间戳:在要同步的源表⾥有时间戳字段,每当数据发⽣变化,时间戳会记录发⽣变化的时间。
5. 数据⽐较:通过⽐较两边数据源数据,来完成数据同步。⼀般⽤于实时性要求不⾼的场景。
6. 全表拷贝:定时清空⽬的数据源,将源数据源的数据全盘拷贝到⽬的数据源。⼀般⽤于数据量不⼤,实时性要求不⾼的场景。MySQL主从同步
主从同步使得数据可以从⼀个数据库服务器复制到其他服务器上,在复制数据时,⼀个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。
1. 原理说明:留学中介机构
1. 从数据库的IO线程读取主数据库的binlog⽇志,写⼊到从数据库的中继⽇志⽂件中,从数据库的SQL线程从本机的中继⽇志中读
中秋寄语取SQL命令在本机执⾏,完成数据同步;
2. 如果主从数据库配置前数据不⼀致,SQL线程就会报错;如果在主数据库创建授权⽤户出错,导致从数据库⽆法连接主数据
库,IO线程就会报错;
3. 当从数据库的SQL线程执⾏中继⽇志⾥⾯的SQL命令失败的时候,SQL线程会⽴即宕掉
注意:在配置MySQL主从数据库之前,确保从数据库的数据不能多于主数据库的数据
2. 主从同步配置说明:
1. 主上修改myf⽂件:
server-id=1#指定主MySQL数据库的ID
log-bin=mysql-bin #启⽤binglog⽇志,⽇志⽂件保存在MySQL的安装主⽬录(/var/lib/mysql)下,⽂件名的格式为"mysql-bin22.000001"(每个⽂
2. 从上修改配置⽂件 myf:
server-id=2
relay-log=relay-bin
read-only =1
replicate-ignore-db = mysql
replicate-ignore-db = test
清明节古诗大全50首replicate-ignore-db = information_schema
replicate-wild-do-table = my_db.stu //所要同步的数据库的单个表
3. 主上 创建 同步的⽤户:
grant replication client,replication slave on *.* to rep@'192.168.1.3' identified by'root';
4. 同步到主库(在从上操作):
什么叫互质数change master to master_host='192.168.1.4',master_user='rep',master_password='root';
5. 开启slave状态
start slave;
6. 在从上验证
show slave status \G;
#命令执⾏结果中下⾯两项显⽰如下则说明主从同步配置正常
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
7. 从上重置同步 :
关于我的中国梦的作文reset slave;
8. 从上停⽌同步:
stop slave;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论