[MySQL] slave和master不同步的解決方法
今天發現MySQL的SLAVE資料庫沒有和MASTER同步,記錄下如何檢查和解決方式
注意: 以下方法將會重置mysql的複製,bin-log將會被刪除,如果要使用,可以先備份bin-log
會發現
此命令為把資料備份到mysql.bak.sql上
參考來源:https://www.howtoing.com/reset-re-sync-mysql-master-slave-replication
注意: 以下方法將會重置mysql的複製,bin-log將會被刪除,如果要使用,可以先備份bin-log
如何檢查
1.進到SLAVE資料庫,下命令查看同步狀態
mysql > show slave status\G
會發現
Slave_IO_Running: Yes Slave_SQL_Running: No可以確認SLAVE是不同步的狀態
如何解決
重新做slave,使資料庫和master完全同步在Master server的設置:
1.先進入master資料庫,進行鎖表,防止資料寫入
mysql > FLUSH TABLES WITH READ LOCK ;
2.進行數據備份
#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
此命令為把資料備份到mysql.bak.sql上
3.備份後把表解鎖
mysql > UNLOCK TABLES ;
4.把mysql備份文件傳到slave機器,進行數據恢復
使用scp命令,此命令是丟到slave上的/tmp資料夾裡# scp mysql.bak.sql root@{ip}:/tmp/
在slave server的設置:
1.停止slave的狀態
mysql > STOP SLAVE;
2.導入數據備份
mysql > source /tmp/mysql.bak.sql
3.重新設置slave服務器
mysql > RESET SLAVE ;
mysql > CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000001' , MASTER_LOG_POS = 1 ;
4.開始slave
mysql > START SLAVE;
5.查看同步狀態
mysql> show slave status\G查看:
Slave_IO_Running: Yes Slave_SQL_Running: Yes完成同步
參考來源:https://www.howtoing.com/reset-re-sync-mysql-master-slave-replication
留言
張貼留言