解決MySQL 複製中的資料庫不符
在MySQL 複製設定中,主伺服器和從伺服器的資料庫內容之間可能會發生不匹配如果從機長時間斷開連接然後重新連接。要在這種情況下重新同步資料庫,可以採取以下步驟:
在主伺服器上:
- 透過執行RESET MASTER 重設主伺服器; .
- 使用FLUSH TABLES WITH READ LOCK 鎖定表以進行讀取操作;.
- 使用SHOW MASTER STATUS; 取得主伺服器的目前複製狀態。複製 Master_Log_File 和 Master_Log_Pos 傳回的值。
- 使用mysqldump -u root -p --all-databases > 將整個資料庫從master 匯出到轉儲檔案/path/mysqldump.sql.
在從屬伺服器:
- 使用STOP SLAVE 停止從屬伺服器的複製過程;.
- 使用mysql -uroot -p
- 透過執行RESET SLAVE 重置從站的複製配置;。
- 使用 CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001 更新從站的複製配置以符合主站的目前位置', MASTER_LOG_POS=98;。將 'mysql-bin.000001' 和 '98' 替換為從主伺服器上執行的 SHOW MASTER STATUS 指令所獲得的值。
- 使用 START SLAVE; 再次啟動從屬伺服器的複製程序。
驗證:
要確認同步成功,執行SHOW SLAVE STATUS;在從伺服器上。輸出應將 Slave_IO_Running 和 Slave_SQL_Running 顯示為 Yes。
以上是Slave斷線後如何重新同步MySQL複製?的詳細內容。更多資訊請關注PHP中文網其他相關文章!