背景知识: mysql
mysql 5.6里加入了replication event checksum(主从复制事件校验)功能,此特性能较为容易的判断出是由何种缘由致使的主从数据不一致。 sql
处理过程: 性能
// 因某些特别的需求,须要对一台mysql 5.6的master配置一个mysql 5.5的slave(不推荐)。 spa
mysql> start slave; Query OK, 0 rows affected (0.00 sec) mysql> show slave status \G *************************** 1. row *************************** ...... Slave_IO_Running: No Slave_SQL_Running: Yes ...... Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replication events with the checksum that master is configured to log; the first event 'mysql-bin.000990' at 661485030, the last event read from './mysql-bin.000990' at 661485030, the last byte read from './mysql-bin.000990' at 120.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: ......
// 开启slave时报error 1236,处理方法: code
# on Master: 事件
mysql> show variables like 'binlog_checksum%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | binlog_checksum | CRC32 | +-----------------+-------+ 1 row in set (0.00 sec) mysql> set global binlog_checksum='NONE'; Query OK, 0 rows affected (0.22 sec) mysql> show variables like 'binlog_checksum%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | binlog_checksum | NONE | +-----------------+-------+ 1 row in set (0.00 sec)
注:在修改"bingo_checksum"后,若是原先在slave上使用的是mysqldump导出的数据副本进行的数据导入,那么须要使用mysqldump(须要获得master log pos,在slave上导出时使用'--dump-slave=2')从新生成一份 "bingo_checksum"修改后的sql文件去slave上进行数据导入。 it