Received error packet: errno = 1236, sqlstate = HY000 errmsg = Slave can not handle replication even

时间:2025-02-09 18:57:59

使用版本是5.6.22


异常:

Caused by: : Received error packet: errno = 1236, sqlstate = HY000 errmsg = Slave can not handle replication events with the checksum that master is configured to log; the first event 'mysql-bin.000001' at 3065, the last event read from '.\mysql-bin.000001' at 3065, the last byte read from '.\mysql-bin.000001' at 120.


/blog/1329616

/topic/1129002 七锋已经fix了canal的,要合到dbsync里面。

/pdb/mysql/201404/

/blog/2014/04/29/disabling-binlog-checksum-for-mysql-5-dot-5-slash-5-dot-6-master-master-replication/

查询资料发现mysql版本为5.6时,

这个错误一般出现在master5.6,slave在低版本的情况下。这是由于5.6使用了crc32做binlog的checksum;

当一个event被写入binary log(二进制日志)的时候,checksum也同时写入binary log,然后在event通过网络传输到从服务器(slave)之后,再在从服务器中对其进行验证并写入从服务器的relay log.

由于每一步都记录了event和checksum,所以我们可以很快地找出问题所在。

在master1中设置binlog_checksum =none;

mysql> show variables like "%sum%";
+---------------------------+--------+
| Variable_name             | Value  |
+---------------------------+--------+
| binlog_checksum           | CRC32  |
| innodb_checksum_algorithm | innodb |
| innodb_checksums          | ON     |
| master_verify_checksum    | OFF    |
| slave_sql_verify_checksum | ON     |
+---------------------------+--------+
5 rows in set (0.00 sec)

mysql> set global binlog_checksum='NONE'
Query OK, 0 rows affected (0.09 sec)

mysql> show variables like "%sum%";
+---------------------------+--------+
| Variable_name             | Value  |
+---------------------------+--------+
| binlog_checksum           | NONE   |
| innodb_checksum_algorithm | innodb |
| innodb_checksums          | ON     |
| master_verify_checksum    | OFF    |
| slave_sql_verify_checksum | ON     |
+---------------------------+--------+


重启mysql