mysql sql语句遇到错误继续_MySQL从数据库sql语句执行错误解决方法

准备:两台机器一主一从

192.168.1.150 主

192.168.1.151 从

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

开始模拟线上的错误

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

在从数据库执行sql语句

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

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

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

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

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

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

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

1 stop slave;

2 set global sql_slave_skip_counter=1;

3 start slave;

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

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

你可能感兴趣的:(mysql,sql语句遇到错误继续)