说明

MySQL主从出现不同步的情况时,或者要添加新的从库时,可以使用以下方法进行操作回复主从。

停止业务应用

停止所有连接到主从库上的应用,在恢复主从期间禁止任何增删改等操作,否则恢复失败

停止主从服务

进入slave节点,停止主从服务

$ mysql> stop slave;

处理从库数据

处理从库数据主要有两种情况:

  • 从库中的数据比主库多

这种情况需要先找出从库比主库多的数据,将这些数据添加到主库中

  • 主库的数据比从库的数据多

这种情况可以直接删除从库的所有数据,然后再将主库的数据复制一份到从库

如果从库所在的容器已经不能正常启动,可以考虑删除容器再重新创新新的容器

复制主库数据到从库中

从库数据处理完成后,将从库的数据全部删除掉,然后将主库的数据复制一份到从库中

主库数据并不仅仅是表数据,还包含用户等数据

查询主库当前日志位置

登陆主库的mysql,使用以下命令查询主库当前的二进制日志文件名字以及位置

$ docker exec –it mysql /bin/bash

$ mysql –uroot –p

$ mysql>show master status;

记录File和Position的值,后面需要使用

mysql从库自愈 mysql从库数据比主库多_数据

创建主库和从库的连接

进入从库

$ docker exec –it mysql /bin/bash

$ mysql –uroot –p

使用以下命令创建主库和从库的连接

mysql>change master to master_host='172.16.86.100', master_user='slave', 
master_password='Bjcr.123_MySQL', master_port=3306, master_log_file='mysql-bin.000065', 
master_log_pos= 998883537, master_connect_retry=30;

重启slave

使用下面的命令,启动slave

$  mysql>start slave

使用以下命令查询主从状态

$ show slave status \G;

出现下图所示的情况即为主从创建成功:

mysql从库自愈 mysql从库数据比主库多_mysql 从库log-bin要开启吗_02