Mysql 5.6到5.1复制

时间:2016-03-22 09:48:15

标签: mysql database-replication mysql-5.6 mysql-5.1

我知道mysql不支持这个。但根据https://serverfault.com/questions/262936/is-replication-from-mysql-5-5-master-to-a-5-1-slave-possiblemoment.js,这是可能的。

我遇到了这个问题:

  

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

     

可能的原因是:

     
      
  • 主人的二进制日志已损坏(您可以通过在二进制日志上运行' jquery-ui.css and jquery-ui.js'来检查这一点),
  •   
  • 从属的中继日志已损坏(您可以通过在中继日志上运行' mysqlbinlog'来检查此信息),
  •   
  • 网络问题,或主人或奴隶的MySQL代码中的错误。
  •   
     

如果您想查看主人的二进制日志或从属中继日志,您可以通过发出' mysqlbinlog'来了解他们的名字。在这个奴隶上。

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

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

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

2 个答案:

答案 0 :(得分:1)

Mysql文档并没有说不同的版本复制是不可能的,但是它说较低版本(master)到更高版本(slave)是好的但是如果你反过来可能会有问题。

假设在较新版本中支持某些新功能,但在旧版本中复制该语句时会产生问题。

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

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

但是在这里你的问题似乎有所不同,因为你说二进制日志在主服务器上显示已经被破坏,这不应该是由于不同的版本复制造成的。因此,首先要检查二进制日志的问题。

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

答案 1 :(得分: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:从二进制日志读取数据时,来自master的致命错误1236:'Slave无法使用master配置为记录的校验和来处理复制事件;

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

Reference