[MySQL] slave和master不同步的解決方法
今天發現MySQL的SLAVE資料庫沒有和MASTER同步,記錄下如何檢查和解決方式 注意: 以下方法將會重置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.ho