mysql 记录执行错误_MySQL从数据库sql语句执行错误解决方法-sql文件

准备:两台机器一主一从

192.168.1.150 主

192.168.1.151 从

数据库主从配置完毕,并且主从正常工作中。

04698463993913f943c1fde4ce19f997.png

开始模拟线上的错误

首先用root用户进入到从数据库,人为的插入一条数据(当然了从数据库已经配置了read_only),这里只是为了模拟错误。

在从数据库执行sql语句

insert into user_logs (account_id,category,type,value1,value2,value3,ctime) values(8888,1,1,'test','test','test',12345678);

b4a3455e6c7c7630a9c7f8fcb71597a5.png

我们在主的上面也执行上面的语句,主数据库执行sql语句后。

a6d60931bb2cd89febaa4e9a2a92e15b.png

然后我们再看从数据库的状态 show slave status \G

很明显会报错的,报错原因就不说了,一看就看出来了。

4946b03b755f3b1557dfb81c34c2b1d1.png

当然了声明一下,线上的报错内容不是这个,那种错误比较难模拟,所以就借用了这种错误,但是解决方发都一样的。

分析出报错原因后,就开始解决。首先我们开始把这个报错的sql语句跳过去,我们后期可以再重新导入或者修改。

我们在从库上执行以下步骤

1 stop slave;

2 set global sql_slave_skip_counter=1;

3 start slave;

12cfc6678272146f83b658befdc2c5ca.png

会发现错误已经跳过去了。主从恢复正常。

总结:线上的错误可能多种多样,我们选择跳过错误时要分析,是否影响我们后续的业务,如果不影响,可以直接跳过,如果有影响,最好是从新导入数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值