MySQL Error number: MY-010445; Symbol: ER_RPL_UNEXPECTED_COMMIT_ROLLBACK_OR_XID_LOG_EVENT_IN_STREAM; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-010445; Symbol: ER_RPL_UNEXPECTED_COMMIT_ROLLBACK_OR_XID_LOG_EVENT_IN_STREAM; SQLSTATE: HY000

Message: QUERY(COMMIT or ROLLBACK) or XID_LOG_EVENT is not expected in an event stream %s.

这是MySQL官方错误,主要用于处理数据复制事务(RPL)。

错误说明

MY-010445(ER_RPL_UNEXPECTED_COMMIT_ROLLBACK_OR_XID_LOG_EVENT_IN_STREAM)错误表明在复制流中发现了意外的提交,回滚或XID日志事件。 这暗示日志文件可能不是完整的或损坏的,或者正在为某个注册的表进行复制,而不是另一个表。

常见案例

造成这个错误的原因有很多,比如:

1.从控制节点(master)的binary log 日志被意外的中断或停止,以至于复制日志里面残缺不全;

2.在复制时,从节点(slave)的replication user 被 revoke, 导致无法登录master上执行正确的复制;

3.当主副节点交换时,不小心使用错误的信息;

4.使用第三方工具,比如pt-heartbeat, 由于日志文件不全,导致master与slave不一致,复制失败。

解决方法

由于每种情况的原因都不同,需要先找到具体的原因后,再进行解决。

1.首先检查mysql从节点服务器上的部署环境,是否正确;

2.检查master端服务器上mysql配置文件和开启的binlog format是否一致;

3.检查master与slave服务器上innodb 状态是否一致;

4.重新创建 账号来重新启动复制;

5.检查主机上是否造成socket connection break;

6.清除日志缓存,重新开启复制;

7.重新创建replication,检查master上binlog log状态是否正确。


数据运维技术 » MySQL Error number: MY-010445; Symbol: ER_RPL_UNEXPECTED_COMMIT_ROLLBACK_OR_XID_LOG_EVENT_IN_STREAM; SQLSTATE: HY000 报错 故障修复 远程处理