zoukankan      html  css  js  c++  java
  • 解决mysql开启GTID主从同步出现1236错误问题【转】

    最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介绍,mysql版本为5.7.16。

     

    一、错误原因分析

    错误信息如下:

    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.'

    wKiom1hTZoLgihvpAAAilkspyr0737.png

    一般两种情况会出现以上现象

    1.在主库上手动执行清除二进制日志文件

    2.主库重启,重新同步时

    二、解决方法:

    1.在主库上执行以下命令,查询gtid_purged,记录下改值

    mysql> show global variables like '%gtid%'G

    wKiom1hTZpKCU8WoAABPgzDyrTQ054.png

    2.在从库上执行以下命令,查询已经执行过的gtidgtid_executed,记录下主库的值,本机的不需要

    wKioL1hTZp-DQZMvAAAspE0SKJ8150.png

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

    mysql> stop slave;

    mysql> reset slave;

    mysql> reset master;

    4.在从库上设置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

    5.重新开启同步

     

    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

     

    转自

    解决mysql开启GTID主从同步出现1236错误问题-linux之路-51CTO博客

    http://blog.51cto.com/hnr520/1883282

  • 相关阅读:
    写360搜索网页总结
    display和position以及其余标签的使用
    MySQL中的 show index命令
    MySQL中查看索引使用情况
    分布式存储容错原理
    MySQL中通过trace分析优化器跟踪SQL
    MySQL中的 show profile 分析sql
    MySQL 中的 dual表
    Every derived table must have its own alias(sql语句错误解决方法)
    MySQL 中的 explain 语句各字段解释
  • 原文地址:https://www.cnblogs.com/paul8339/p/8983840.html
Copyright © 2011-2022 走看看