Error number: MY-010442; Symbol: ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM; SQLSTATE: HY000
Message: Unsupported non-ignorable event fed into the event stream.
MY-010442; ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM; HY000 错误说明
该错误是MySQL在复制过程中抛出的错误,ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM,指的是系统在binlog流中发现不可忽略的不支持的 Binlog事件。
常见案例
当MySQL复制时,如果系统检测到binlog流中的某一个不可忽略的binlog事件不被支持时,就会抛出ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM错误。例如,主服务器上的某个版本中支持了部分binlog事件,但是从服务器上的较低版本中,却不支持这些binlog事件,此时,MySQL就会抛出ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM错误。
解决方法
(1)检查主从服务器之间的版本:首先,应该检查当前主从服务器之间的版本兼容性,看是否会存在相应的binlog事件不被支持的情况,如果出现这种情况,应该将主从服务器之间的版本降低或升高,来解决这个问题;
(2)检查binlog_format和gtid_mode参数:MySQL中一般情况下,binlog_format和gtid_mode参数都会被推荐设置为ROW,如果binlog_format和gtid_mode参数设置不正确,也会导致MySQL抛出ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM错误;
(3)检查binlog_checksums参数:MySQL还可以使用binlog_checksums参数来校验binlog中事件的完整性,如果binlog_checksums参数设置为off,则可能会出现binlog事件不完整或被破坏的情况,从而导致MySQL抛出ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM错误;
(4)检查MySQL二进制文件:如果MySQL在启动的过程中,检查到有二进制文件存在错误,或者这些二进制文件在不支持binlog事件的版本中,也会无法正常复制,也就会抛出ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM错误。