MySQL 复制 Slave_SQL_Running 插入数据后失败

MySQL replication Slave_SQL_Running fails after inserting data

对于学校,我必须在同一台计算机上使用 MySQL 的主从复制。

因为你不能 运行 在你的计算机上使用相同 MySQL 版本的多个实例,我使用 MySQL 5.6 作为主控(端口 3306)和 MySQL 5.5 用于从站(端口 3307)。

执行以下查询后:

stop slave;
CHANGE MASTER TO
MASTER_HOST='localhost',
MASTER_PORT=3306,
MASTER_USER='MySQL_SLAVE',
MASTER_PASSWORD='mypasswordgoeshere',
MASTER_LOG_FILE='mysql-bin.000007',
MASTER_LOG_POS=1571;
start slave;
show slave status

我看到 Slave_IO_Running 和 Slave_SQL_Running 都成功了。

但是在master数据库中插入数据后,Slave_SQL_Running值由'Yes'变为'No'。

Last_Error 列给出了这个:

1594 - 中继日志读取失败:无法解析中继日志事件条目。 可能的原因是:master的binary log损坏了(可以在binary log上运行ning 'mysqlbinlog'查看),slave的relay log损坏(可以查看这个通过 运行ning 'mysqlbinlog' 在中继日志上),网络问题,或者主机或从机的 MySQL 代码中的错误。 如果你想检查主机的二进制文件log 或 slave 的中继日志,你可以通过在这个 slave 上发出 'SHOW SLAVE STATUS' 来知道他们的名字。

在我的主从二进制日志上使用 mysqlbinlog 命令,我没有看到任何错误。 因为我 运行 这两个实例在一台计算机上,所以我很确定我的问题不是由网络问题引起的。由于我刚刚将主数据导入从数据,我很确定这也不是由 MySQL 代码引起的。

有什么想法吗?

感谢您的宝贵时间!

通过将 master 上的 binlog_format 从 'ROW' 更改为 'MIXED' 解决了问题。