一、问题

mysql-5.6.20主从同步错误之Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND或(主从复制,当主从同步状态异常时,通过对比检查二进制文件和中继日志文件,发现master 和slave 节点之间同步的位置点发生了偏移,请问这可能时什么情况引起的,如何解决)

二、解决方法

1. 方法一

1.Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND 是主从更新时丢失数据,导致主从不一致,在从库上mysql> show slave status\G;结果如下
在这里插入图片描述
2.在master上,用mysql binlog 分析下出错的binlog日志在干什么
/usr/local/mysql/bin/mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS mysql-bin.000042 | grep -A ‘10’ 455223179

在这里插入图片描述
3.查询master和slave上对应的数据,主库有而从库没有
 select * from log_silver where id=9097514\G;

4.把丢失的数据在slave上填补,然后跳过报错
mysql> insert into t1 values();
mysql> stop slave ;set global sql_slave_skip_counter=1;start slave;

5.查看同步结果
mysql> show slave status\G;

2.方法二

1.如果用方法一还是不能主从同步,查询到这个错误是mysql的bug导致的

2.解决的办法:

  • 1.最好的办法是升级数据库 保证bug不会重现;

  • 2.利用配置参数 来躲避这个bug vi /etc/my.cnf
    slave-skip-errors = 1032,xxxx,xxxx …

  • 3.临时逃避此次错误。
    set global sql_slave_skip_counter=1; stop slave; start slave;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐