博客
关于我
MySQL主从失败 错误Got fatal error 1236解决方法
阅读量:790 次
发布时间:2023-02-11

本文共 1145 字,大约阅读时间需要 3 分钟。

主服务器异外重启导致从服务器出现同步问题,以下是详细的解决过程:

问题描述

主服务器重启后,从服务器出现以下错误:

show slave status错误:Slave_IO_Running: NoSlave_SQL_Running: Yes

错误日志显示:

Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position'

同时,查看mysql错误日志:

Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)

分析与解决方法

  • 初步排查

    • 首先,尝试停止从服务器:
      stop slave;
    • 然后,修改主从关系,设置正确的binlog位置:
      change master to master_log_file='mysql-bin.000288',master_log_pos=627625751;
    • 重新启动从服务器:
      start slave;
    • 仍然存在错误,进一步登录主服务器查看binlog日志。
  • 主服务器日志分析

    • 使用mysqlbinlog工具分析binlog文件:
      mysqlbinlog /data/mysql/binlog/mysql-bin.000288 > test.txt
    • 检查日志文件,寻找错误位置。发现错误标记为627655136,但未找到对应的位置。
  • 确定最接近的位置

    • 在日志中找到最接近627655136的位置:
      # at 627625495#111010 16:35:46 server id 1 end_log_pos 627625631
    • 确定位置627625631,并将其作为新的主从位置。
  • 调整从服务器配置

    • 停止从服务器:
      stop slave;
    • 修改主从关系,设置新的位置:
      change master to master_log_file='mysql-bin.000288',master_log_pos=627625631;
    • 重新启动从服务器:
      start slave;
    • 此时,从服务器状态变为:
      Slave_IO_State: Queueing master event to the relay logSlave_SQL_Running: Yes
  • 总结

    通过上述步骤,成功解决了主从服务器的同步问题。对于其他从服务器,可采用相同方法进行修复。

    转载地址:http://rtbfk.baihongyu.com/

    你可能感兴趣的文章