$ docker exec -it mysql /bin/bash
$ mysql -uroot -p输入密码:123456
$ mysql>show master status;
先停止同步(新从库可忽略此步)
连接数据库
$ docker exec -it mysql /bin/bash
$ mysql -uroot -p输入密码:123456
$ stop slave;
同步数据库信息
1.确认用户和权限保持一致
2.确认数据库、编码、表及数据都一致
启动同步
连接数据库
$ docker exec -it mysql /bin/bash
$ mysql -uroot -p输入密码:123456
修改主库同步信息,master_log_file=File和master_log_pos=Position(上面查询主库状态)
$ change master to master_host='192.168.1.100', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000065', master_log_pos=1045149087, master_connect_retry=30;
$ start slave;
$ show slave status \G;
可以通过以下的方式排查原因:
上述所示为正常情况下的显示,如果主从同步异常,此处会提示相应的原因,可以根据此处的提示进行问题排查,排查过程中建议先停掉主从
在主从同步过程中,如果从节点执行某个sql失败,那么会导致从节点一直异常而不会同步后续的数据,例如下面的错误:
解决方案如下:
1.进入从节点,停止主从;
$ mysql > stop slave;
2.跳过当前的错误的事务,1表示是一个事务,如果不知道明确的错误个数就一个一个处理;
$ mysql > SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
3.重启主从;
$ mysql > start slave;
4.查看主从状态,如果还有错误就重复上面三个步骤,没有错误的话就会自动同步主节点的数据,直到和主节点完全同步;