MySQLGTID模式下,服务器异常断电,重启MySQL主从报错1236#Olivia丶长歌#

MySQL主从

发生场景:

服务器断电重启,断电前未关闭MySQL。通电重启服务器及MySQL后,在从库上start slave;报错

错误信息如下:

Last_IO_Errno: 1236

                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.

1,不需要重新搭建主从的方式,对于主从复制报错,出现问题,虽然重新搭建主从是万能法,但尽量尝试其它方式,因为对于大数据量数据库,重新搭建主从需要耗费很长时间。

在主库上执行

mysql>show global variables like '%gtid_purged%';

查看主库的gtid_purged的value值。

在从库上也执行该命令,查看gtid_purged值是否和主库相同,如果小于主库的值如下。

2,在从库上执行

mysql>stop slave;

mysql>set gtid_next='主库查询到的value值';

mysql>begin;commit;

mysql>set gtid_next='automatic';

mysql>start slave;

查看一下主从状态。

mysql>show slave status\G;

这时的主从状态,SQL线程和IO线程都是yes了。

3,如果这种错误是因为在主库上手动误删除了二进制文件,那就必须重新搭建主从了。

首先在主库和从库上执行

wKioL1hTZp-DQZMvAAAspE0SKJ8150.png

然后在从库上执行以下命令停止同步线程及重置同步相关信息

mysql> stop slave;

mysql> reset slave;

mysql> reset master;

在从库上设置gtid_purged

该值有两个来源,一是在主库上查询的gtid_purged,二是在从库上查询的已经执行过的gtid_executed值(本机的就不需要,主库上gtid

注意:一定记得加上从库上已经执行过的gtid,若只设置了主库上的gtid_purged,此时从库会重新拉取主库上所有的二进制日志文件,同步过程会出现其他错误,导致同步无法进行

mysql> set @@global.gtid_purged='4fa9ab33-3077-11e6-8ee6-fcaa14d0751b:1-18240458,6e41a42e-8529-11e6-b72e-fcaa14d07546:1-56604052:56604054-56605629:56605631-56871196,9850e381-b601-11e6-8e46-fcaa14d07546:1-3126210,c5cdcae2-9cb0-11e6-909c-fcaa14d0751b:1-1189,10a59961-c02d-11e6-a2de-fcaa14d07546:1-13381418';

注意:设置gtid_purged值时,gtid_executed值必须为空否则报错,该值清空的方法就是reset  master命令

执行完,再次查看相关信息

wKiom1hTZq6Byg8cAABpMAp-ufo118.png

重新开启同步

mysql> change master to master_host='192.168.1.15',master_port=3306,master_user='repl',master_password='xxx',master_auto_position=1;

mysql>  start slave;

当从库追赶上主库,此时测试主从数据是否一致,测试结果一切正常

mk-table-checksum h=192.168.1.15,u=root,p=xxx,P=3306 h=192.168.1.19,u=root,p=xxxx,P=3307 -d 6coursestudychoose_test | mk-checksum-filter




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值