复制错误

每当在从属服务器上运行查询时出现错误,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