说明
MySQL主从出现不同步的情况时,或者要添加新的从库时,可以使用以下方法进行操作回复主从。
停止业务应用
停止所有连接到主从库上的应用,在恢复主从期间禁止任何增删改等操作,否则恢复失败
停止主从服务
进入slave节点,停止主从服务
$ mysql> stop slave;
处理从库数据
处理从库数据主要有两种情况:
- 从库中的数据比主库多
这种情况需要先找出从库比主库多的数据,将这些数据添加到主库中
- 主库的数据比从库的数据多
这种情况可以直接删除从库的所有数据,然后再将主库的数据复制一份到从库
如果从库所在的容器已经不能正常启动,可以考虑删除容器再重新创新新的容器
复制主库数据到从库中
从库数据处理完成后,将从库的数据全部删除掉,然后将主库的数据复制一份到从库中
主库数据并不仅仅是表数据,还包含用户等数据
查询主库当前日志位置
登陆主库的mysql,使用以下命令查询主库当前的二进制日志文件名字以及位置
$ docker exec –it mysql /bin/bash
$ mysql –uroot –p
$ mysql>show master status;
记录File和Position的值,后面需要使用
创建主库和从库的连接
进入从库
$ 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;
出现下图所示的情况即为主从创建成功: