複製錯誤
每當在從屬伺服器上執行查詢時出現錯誤,MySQL 會自動停止複製以識別問題並進行修復。這主要是因為事件導致重複鍵或行未找到且無法更新或刪除。你可以跳過此類錯誤,即使不建議這樣做
要僅跳過掛起從屬的一個查詢,請使用以下語法
SET GLOBAL sql_slave_skip_counter = N;
該語句從主伺服器中跳過下一個 N 事件。僅當從屬執行緒未執行時,此語句才有效。否則,會產生錯誤。
STOP SLAVE;
SET GLOBAL sql_slave_skip_counter=1;
START SLAVE;
在某些情況下,這很好。但是如果該語句是多語句事務的一部分,則它變得更加複雜,因為跳過錯誤產生語句將導致跳過整個事務。
如果你想跳過產生相同錯誤程式碼的更多查詢,並且如果你確定跳過這些錯誤不會使你的從站不一致並且你想要全部跳過它們,那麼你將新增一行來跳過 my.cnf
中的錯誤程式碼。
例如,你可能希望跳過可能遇到的所有重複錯誤
1062 | Error 'Duplicate entry 'xyz' for key 1' on query
然後將以下內容新增到你的 my.cnf
中
slave-skip-errors = 1062
你也可以跳過其他型別的錯誤或所有錯誤程式碼,但請確保跳過這些錯誤不會導致你的 slave 不一致。以下是語法和示例
slave-skip-errors=[err_code1,err_code2,...|all]
slave-skip-errors=1062,1053
slave-skip-errors=all
slave-skip-errors=ddl_exist_errors