续我上篇的博文:https://mp.csdn.net/postedit/87894362
1.在主库和从库上准备数据
从库上操作:
[root@server2 mysql]# mysql -pXinjiaojiao+623
mysql> use westos;
mysql> update usertb set password='456' where username='user1';
查看主库usetb表上数据:
查看从库usertb表数据:
2.模拟数据不一致报错
删除主库上id=3的数据:
[root@server1 mysql]# mysql -pXinjiaojiao+523
mysql> use westos;
mysql> delete from usertb where username='user1';
查看主库usetb表上数据:
查看从库usertb表数据:
从库usertb表上数据没有发生变化,这是什么原因?
查看从库状态:
可以看到,从库上的slave_io线程还在工作,但是执行从库更新的slave_sql已经罢工了。从Last_error:可以看到因为主库执行delete操作,而从库找不到要删除的内容。
3.问题分析:
上面发现问题如下:
a.从库数据没有同步
b.从库SQL线程状态为no
c.从库SQL线程报错
4.问题处理:
从库上执行如下操作:
[root@server2 mysql]# mysql -uroot -pXinjiaojiao+623
mysql> set global sql_slave_skip_counter=1; #跳过当前卡住的event,然后重新起来干活
mysql> start slave;
此时再次查看从库的状态:发现已经恢复正常
再手工删除从库上usertb表username='user1'的记录:
[root@server2 mysql]# mysql -uroot -pXinjiaojiao+623
mysql> use westos;
mysql> delete from usertb where username='user1';
最后查看从库test表的记录,已与主库记录保持一致: