Error number: 3570; Symbol: ER_BINLOG_UNSAFE_SKIP_LOCKED; SQLSTATE: HY000
Message: Statement is unsafe because it uses SKIP LOCKED. The set of inserted values is non-deterministic.
错误说明:
ER_BINLOG_UNSAFE_SKIP_LOCKED 是MySQL服务器中的运行时错误,由数据库引擎的binlog子系统发出的。事务处理器在记录它的操作时会发送此错误。它表明MySQL服务器不能记录事务信息,因为它只能写入那些处于锁定状态的事务记录。
此错误通常发生在MySQL binlog系统中,比如当一个服务器尝试记录在binlog系统中存在的但实际上已被锁定的事务时。系统会停止记录日志,并显示该错误消息。
解决方法:
解决此错误的推荐方法是从源端膨胀和恢复解决方案。首先,在发生此错误的服务器上运行mysqlbinlog程序,以查询binlog文件以匹配相应的事务ID并将其删除。这可以消除binlog中锁定记录,从而恢复原始binlog状态。之后,请确保所有依赖此服务器的任何客户端都停止使用binlog文件,并清除此服务器上的所有binlog文件。最后,如果启用了Semi-Sync配置,则在恢复正常的binlog状态之前,在binlog服务器上关闭Semi-Sync配置。完成这几步之后,您可以轻松恢复操作,以解决ER_BINLOG_UNSAFE_SKIP_LOCKED错误消息。