一. 问题背景
搭建mysql主从复制:
- 主机:在windows上,mysql版本5.7
- 从机:在CentOS7上,mysql版本5.5
报错:Slave can not handle replication events with the checksum that master is configured to log;
解释: 一般出现在主机版本比从机版本高。由于5.7使用了crc32做binlog的checksum;
当一个event被写入binary log(二进制日志)的时候,checksum也同时写入binary log,然后在event通过网络传输到从服务器(slave)之后,再在从服务器中对其进行验证并写入从服务器的relay log.
二. 解决方案
- 关闭主机上的MySQL服务
- 打开主机上MySQL的my.ini文件,在[mysqld]下输入
binlog_checksum =none
,如下:
- 保存my.ini文件,启动主机上的mysql服务。
- 在从机上按ctrl+c关闭当前进程,然后输入
service mysql restart;
重启MySQL服务 - 重启完后,在从机上输入
mysql -uroot -p123456
(p后面为你的数据库密码,u后面为你的数据库用户名) - 进入mysql后,先
stop slave;
- 然后到主机那里
flush logs;
,再show master status;
,查到如下:
- 在从机里面
change master to master_log_file='上面图中第一个红色圈的值',master_log_pos=第二个红色圈的值;
- 在从机里面
slave start;
10.在从机里面show slave status\G;
,就可以看到如下: