1

我知道mysql不支持这个。但根据http://dev.mysql.com/doc/refman/5.6/en/replication-compatibility.htmlhttps://serverfault.com/questions/262936/is-replication-from-mysql-5- 5-master-to-a-5-1-slave-possible这是可能的。

我遇到了这个问题:

中继日志读取失败:无法解析中继日志事件条目。

可能的原因有:

  • 主服务器的二进制日志已损坏(您可以通过mysqlbinlog在二进制日志上运行 ' ' 来检查),
  • 从站的中继日志已损坏(您可以通过mysqlbinlog在中继日志上运行“”来检查),
  • 网络问题,或者 master 或 slave 的 MySQL 代码中的 bug。

如果你想查看master的binary log或者slave的relay log,你可以通过SHOW SLAVE STATUS在这个slave上发出' '来知道它们的名字。

二进制日志没有损坏,但即使我重置复制,中继日志也已损坏。主人没有腐败。只有奴隶才有腐败。

它似乎只发生在 utf8 表上。更具体地说,在对 utf8 表进行更改之前,中继日志中没有损坏。

是否有修复或 5.6 到 5.1 是不可能的?

4

2 回答 2

1

Mysql 文档没有说不同版本的复制是不可能的,但它说低版本(主)到高版本(从)很好,但如果反之亦然,可能会出现问题。

假设有一些新功能受新版本支持,但旧版本不支持,在这种情况下,当该语句将在旧版本上复制时,就会产生问题。

例如,存储过程是在 5.4 中引入的,因此如果您在 master 5.6 中使用此功能,那么它将在 5.1 版本上复制时产生问题。

另一个示例可能是热更改,因为它是在 mysql 5.6 中引入的默认功能,因此如果您复制到 5.6 之前的旧版本,这可能会产生问题(我没有检查它只是一个示例)。

但是在这里,您的问题似乎有所不同,因为您说二进制日志在甚至 master 上都显示损坏,这不应该是由于不同的版本复制造成的。所以首先检查你的二进制日志有什么问题。

即使在附加从属服务器之前,只需在启用 binlog 后启动您的主服务器并尝试读取 binglog,如果一切正常,您可以尝试使用它附加一个从属服务器,并检查是否可以进行 5.6 到 5.1 的复制。

于 2016-03-22T10:15:16.317 回答
0

MySQL 5.6.6 及更高版本默认使用 CRC32 校验和用于 binlog 记录。为了让 MySQL 5.1 和 5.5 读取 binlog,master 应该用变量启动

binlog-checksum = NONE

该变量在运行时也可用:

set global binlog_checksum='NONE';

通常的消息是:

Last_IO_Error: 从二进制日志读取数据时,从主服务器收到致命错误 1236:'从服务器无法使用主服务器配置记录的校验和处理复制事件;

应该注意的是,该变量是在 MySQL 5.6.2 中引入的,默认值为“NONE”。

参考

于 2017-03-17T07:01:09.900 回答