MySQL主從同步是實現(xiàn)高可用性的關(guān)鍵技術(shù)之一。但是,由于網(wǎng)絡(luò)問題等原因,主從同步可能會出現(xiàn)數(shù)據(jù)不一致的情況,這就需要進(jìn)行主從重新同步。
STOP SLAVE; # 停止從服務(wù)器的復(fù)制進(jìn)程 SHOW SLAVE STATUS\G; # 查詢從服務(wù)器狀態(tài),記錄下Master_Log_File和Read_Master_Log_Pos RESET SLAVE; # 重置從服務(wù)器數(shù)據(jù)
接下來需要在主服務(wù)器上執(zhí)行以下語句:
FLUSH TABLES WITH READ LOCK; # 鎖定所有表,防止數(shù)據(jù)繼續(xù)變化 SHOW MASTER STATUS\G; # 查詢主服務(wù)器狀態(tài),記錄下File和Position UNLOCK TABLES; # 解鎖表
然后在從服務(wù)器上執(zhí)行以下語句進(jìn)行重新同步:
CHANGE MASTER TO MASTER_HOST='Master的IP地址', MASTER_USER='主服務(wù)器的用戶名', MASTER_PASSWORD='主服務(wù)器用戶的密碼', MASTER_LOG_FILE='之前記錄的Master_Log_File', MASTER_LOG_POS=之前記錄的Read_Master_Log_Pos'; START SLAVE; # 啟動從服務(wù)器復(fù)制進(jìn)程
這樣,主從重新同步就完成了。