欢迎阅读!

潇湘夜雨

当前位置: 主页 > 数据库 >

mysql5.7多线程gtid主从复制(3)

时间:2016-10-26 21:31来源:潇湘夜雨 作者:华嵩阳 点击:
使用reset slave命令解决: mysql reset slave; #重置salve Query OK, 0 rows affected (0.01 sec) mysql start slave; #再次启动同步进程 2.gtid相同的错误 错误状态 mysql show s
  使用reset slave命令解决:
  mysql> reset slave; #重置salve
  Query OK, 0 rows affected (0.01 sec)
  mysql> start slave; #再次启动同步进程
 
2.gtid相同的错误
错误状态
mysql> show slave staus;
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
these UUIDs must be different for replication to work.
分析:这是用于虚拟机克隆或数据库简单复制安装导致的gtid相同,从而无法同步。
解决方法:
重命名从库的gtid文件
mv /data/mysql/auto.cnf  /data/mysql/auto.cnf.bk  ###重命名该文件
重启mysql会重新生成auto.cnf
再重新同步
 
五、主从同步优化建议
1.从库尽量不要写入数据
 对于需要保证master-slave主从同步的salve库,如果要设置为只读状态,需要执行的命令为:
mysql> set global read_only=1; #重启服务后会失效
或者在配置文件总添加read_only=1
 
2.主库迁移时也不能写入数据
read_only=1只读模式,可以限定普通用户进行数据修改的操作,但
不会限定具有super权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通
的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数
据库处于只读模式不能发生数据变化的错误,但具有super权限的用户,例如在本地或
远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;
 
为了确保所有用户,包括具有super权限的用户也不能进行读写操作,就需要执行给所
有的表加读锁的命令 “flush tables with read lock;”,这样使用具有super权限的用
户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。
 
这样通过 设置“read_only=1”和“flush tables with read lock;”两条命令,就可以确
保数据库处于只读模式,不会发生任何数据改变,在MySQL进行数据库迁移时,限定master主库不能有任何数据变化,就可以通过这种方式来设定。
设置方法:
mysql> flush tables with read lock;
mysql> set global read_only=1;
mysql> show global variables like "%read_only%";
 
将MySQL从只读设置为读写状态的命令:
mysql> unlock tables;
mysql> set global read_only=0;
 
注意:主库只读操作不要修改配置文件,因为只是临时性操作,维护完后仍然要进行读写操作。
(责任编辑:liangzh)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容