說明
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;
出現下圖所示的情況即為主從創建成功: