记一次mysql主从同步失败的踩坑记录
2019-07-11 14:53
162 查看
踩坑过程
昨天在开发电脑上搭建了mysql的主从服务,并尝试搞了一下读写分离的实现机制。想着今天再来搞一下数据分表。于是一大早来了后就开始搞起来。可是当测试的时候却发现,从库的数据怎么都写不进去,检查了好久,还以为新搞得的分表配置逻辑有问题。咦~没问题啊,是不是数据库的同步的问题啊?于是带着疑问我尝试了一下手动在master里添加一个数据,然后到slave库里查看一下有没有。果然,没有,那就真的是主从同步除了问题。忽然想到,今早来了后我把电脑重启了一下,再加上昨天有部分配置是通过命令生效的,没有写进配置文件。 于是果断cmd查了一下slave的slave状态
... Slave_IO_Running: No Slave_SQL_Running: No ...
哈哈,果然。 查了一下master的status
>mysql>show master status;    File和position都有变化    于是重新配置了一下slave,配置步骤可以参考昨天的文章[windows上mysql的主从配置](https://my.oschina.net/qrainly/blog/3072368 "windows上mysql的主从配置")    重新开启slave >mysql>start slave    查看slave状态 >mysql>show slave status\G;
报错如下
Last_SQL_Error: Could not execute Delete_rows event on table user; Can't find record in 'user', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000003, end_log_pos 1651
看着报错像是想删除去找不到,哦哦,忘了自己在搞这个过程中,在主库加了数据删了又加,一定是binlog记录同步到slave,执行报的错。于是打算重新再搞一次slave,把position重置到master现在的位置。
终于一番操作,搞定。
问题总结
最后我又查了查百度,发现我这个问题其实有更简单的办法,就属于下面常见问题的第一种
问题一:
1、在master上删除一条记录,而slave上找不到
解决办法:
通过命令直接跳过同步
mysql>stop slave; mysql>set global sql_slave_skip_counter=1; mysql>start slave;
问题二:
2、slave已经有该主键的记录,又在master上插入了一条主键相同多的记录。
报错示例:
Last_SQL_Error: Could not execute Write_rows event on table user; Duplicate entry '2' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000003, end_log_pos 234
解决方案:
在slave上删除重复主键的数据
mysql>delete from user where id = 2;
问题三:
3、在master上更新一条记录,在slave上找不到该条数据。 报错示例:
Last_SQL_Error: Could not execute Update_rows event on table user; Can't find record in 'user', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000003, end_log_pos 435
解决方案:
找到丢失的那条记录,从master上找出来insert到salve中,在重新开启slave
持续更新中...
相关文章推荐
- 记录一次Mysql主从不同步事故问题于事故解决办法
- 记录一次apache启动失败的故障排除过程
- 记录一次Tx_LCN连接失败的问题( There is no normal TM )
- 记录一次失败的按键输入实验
- 记录一次禅道迁移安装目录引起的二维码生成失败的问题解决
- [由于远程方关闭传输流,身份验证失败]一次处理支付接口bug记录
- Git与GitHub学习笔记(五)一次提交失败的记录
- 记一次rsyslog日志记录失败的解决过程
- 记录一次阿里云ssh登录失败原因
- mysql主从同步失败Last_IO_Error: Got fatal error 1236 from master解决方法
- 记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)
- ADB识别失败,驱动显示感叹号解决方案——记录一次驱动重装导致的不识别手机问题
- 记录一次面试之旅和失败总结
- 记录一次失败的UDF经历
- 记录一次mysql 主从不同步的问题操作(hashlinux)
- 记录一次本地安装maven jar包失败的问题(有项目源代码)
- 编写脚本:访问一网站,每5分钟访问一次,如果访问成功,将访问记录保存到日志,如果访问失败,则发送邮件至指定邮箱
- Hexo - 记录一次Pages服务部署失败的原因
- 记录一次数据库导入失败的问题