返回顶部
首页 > 资讯 > 数据库 >3分钟解决MySQL主从1594错误
  • 543
分享到

3分钟解决MySQL主从1594错误

主从错误MySQL 2023-01-31 07:01:19 543人浏览 薄情痞子
摘要

3分钟解决Mysql主从1594错误简介Part1:写在最前1594这个错误看起来挺严重的,会提示你binlog文件或者Relay log损坏了,例如binary log is corrupted、relay log is corrupte

wKiom1hGVDmjPoiIAAA4eVx2Dz8464.jpg

3分钟解决Mysql主从1594错误

简介

Part1:写在最前

1594这个错误看起来挺严重的,会提示你binlog文件或者Relay log损坏了,例如binary log is corrupted、relay log is corrupted之类的看起来很吓人是吧,多数是由于掉电引发的,这也说明了机房配备UPS的重要性。本文来自真实生产案例,感谢网友加内特提供,本人加以故障重现校验。一起来看下如何解决吧。


Part2:完整报错信息

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_io_State: Waiting for master to send event
                  Master_Host: 192.168.1.250
                  Master_User: mysync
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000006
          Read_Master_Log_Pos: 2091061
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 1675027
        Relay_Master_Log_File: mysql-bin.000006
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1594
                   Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 1675875
              Relay_Log_Space: 2093990
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 1594
               Last_SQL_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1250
                  Master_UUID: 975d0e4f-bb5d-11e6-98a3-000c29c6361d
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: 
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 161205 21:57:01
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)


解决办法

Part1:停止从库

mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> reset slave all;
Query OK, 0 rows affected (0.25 sec)
mysql>  CHANGE MASTER TO MASTER_HOST='192.168.1.250',MASTER_USER='mysync',MASTER_PASSWord='MANAGER',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=1675875;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

上述的POS号就是Exec_Master_Log_Pos: 1675875


Part2:起库校验

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.250
                  Master_User: mysync
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000006
          Read_Master_Log_Pos: 2091061
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 354960
        Relay_Master_Log_File: mysql-bin.000006
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 2030552
              Relay_Log_Space: 415642
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 796
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1250
                  Master_UUID: 975d0e4f-bb5d-11e6-98a3-000c29c6361d
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Reading event from the relay log
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)


可以看到从库已经开始在追主库了。


Part3:checksum校验

mysql> checksum table helei;
+-------------+------------+
| Table       | Checksum   |
+-------------+------------+
| helei.helei | 2698376487 |
+-------------+------------+
1 row in set (0.00 sec)
mysql> checksum table helei;
+-------------+-----------+
| Table       | Checksum  |
+-------------+-----------+
| helei.helei | 416306435 |
+-------------+-----------+
1 row in set (0.00 sec)


可以看到这里两表已经不一致了,虽然从库完成了同步。但需要重进对主从进行校验了。

主从校验的方法不是本文重点,需要的可移步

Http://suifu.blog.51cto.com/9167728/1836551


[root@HE1 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.6.25-log MySQL CommUnity Server (GPL)

Copyright (c) 2000, 2015, oracle and/or its affiliates. All rights reserved.

Oracle is a reGIStered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| HE1        |
+------------+
1 row in set (0.00 sec)

mysql> select count(*) from helei.helei;
+----------+
| count(*) |
+----------+
|     4738 |
+----------+
1 row in set (0.00 sec)

mysql>


[root@HE3 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.25-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| HE3        |
+------------+
1 row in set (0.00 sec)

mysql> select count(*) from helei.helei;
+----------+
| count(*) |
+----------+
|     5000 |
+----------+
1 row in set (0.00 sec)

mysql>

这里能看到两表的行数也已经不一致了。

——总结——

MySQL1594通常由于掉电引起,虽然报错内容看起来挺吓人的,但只要手稳心不慌,可以很快解决。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。


您可能感兴趣的文档:

--结束END--

本文标题: 3分钟解决MySQL主从1594错误

本文链接: https://lsjlt.com/news/191500.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 3分钟解决MySQL主从1594错误
    3分钟解决MySQL主从1594错误简介Part1:写在最前1594这个错误看起来挺严重的,会提示你binlog文件或者Relay log损坏了,例如binary log is corrupted、relay log is corrupte...
    99+
    2023-01-31
    主从 错误 MySQL
  • 3分钟解决MySQL 1864 主从错误
        从字面意思看了一下是因为slave_pending_jobs_size_max默认值为16777216(16MB),但是slave接收到的slave_pending_jobs_size_max为17085453(17M);解决方案从...
    99+
    2023-01-31
    主从 错误 MySQL
  • 3分钟解决MySQL 1062 主从错误
    1062错误----主键冲突,出现这种情况就是从库出现插入操作,主库又重新来了一遍,iothread没问题,sqlthread出错解决方案:mysql> stop slave;   mysql> set global sql_s...
    99+
    2023-01-31
    主从 错误 MySQL
  • 3分钟解决MySQL 1032 主从错误
    3分钟解决MySQL 1032主从错误Part1:写在最前1032错误----现在生产库中好多数据,在从库误删了,生产库更新后找不到了,现在主从不同步了,再跳过错误也没用,因为没这条,再更新还会报错解决方案Part1:临时方案mysql&g...
    99+
    2023-01-31
    主从 错误 MySQL
  • Linux MySQL主从同步失败报错1594的解决方法
    这篇文章主要讲解了“Linux MySQL主从同步失败报错1594的解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux MySQL主从同步失败...
    99+
    2024-04-02
  • MySQL主从复制错误如何解决
    MySQL主从复制错误如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。| 背景有客户咨询说,自己的从库show slave status...
    99+
    2024-04-02
  • mysql主从跳过错误的示例分析
    小编给大家分享一下mysql主从跳过错误的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!非gtid:stop slave...
    99+
    2024-04-02
  • 怎么解决Mysql中的Last_SQL_Error: 1594报错问题
    这篇文章主要介绍“怎么解决Mysql中的Last_SQL_Error: 1594报错问题”,在日常操作中,相信很多人在怎么解决Mysql中的Last_SQL_Error: 1594报错问题问题上存在疑惑,小...
    99+
    2024-04-02
  • MySQL 主从复制错误1837
    MySQL5.6.37版本,某人在测试环境主库误操作执行删表操作,导致主从断开,在从库查看主从信息如下: Last_Errno: 1837 Last_Error: Worker 3 failed execu...
    99+
    2024-04-02
  • 3分钟了解Mysql空间搜GeoHash
    简单介绍:   Mysql 内置函数方案,适合于已有业务,新增加LBS功能,增加经纬度字段方可,避免数据迁移,在5.7.5后实现更多功能实现INNODB的空间搜方法,之前版本主要是对MYISAM的支持。    在此之前,InnoDB将几何数...
    99+
    2023-01-31
    空间 Mysql GeoHash
  • mysql主从同步错误Last_SQL_Errno: 1032处理分析
    在MySQL DBA 日常运维工作中,主从同步失败一定是会遇到的,最常见建是1032错误。 ...
    99+
    2024-04-02
  • mysql主键1068错误怎么解决
    mysql主键1068错误怎么解决:1、删除主键;2、输入代码,点击执行,删除原有主键,然后进行主键操作。通常mysql主键出现1068错误的原因:是因为主键一旦被定义,就无法再进行更改,直接修改主键属性会被看作定义第二个主键,从而导致出错...
    99+
    2024-04-02
  • MySQL 5.6主从报错分析
    本篇内容主要讲解“MySQL 5.6主从报错分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL 5.6主从报错分析”吧!1. 问题现象版本:MySQL 5.6,采用传统 binlog ...
    99+
    2023-06-14
  • mysql主从复制跳过复制错误
    跳过复制错误mysql因为binlog机制问题,有些时候会出现从库重放sql执行失败的情况,特别是旧的STATEMENT模式最容易出现这种情况(因为函数和存储过程等原因),这也是为什么强调使用mixed和r...
    99+
    2024-04-02
  • mysql主从同步怎么跳过错误
    这篇文章给大家分享的是有关mysql主从同步怎么跳过错误的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql主从同步跳过错误的方法:1、跳过指定数量的事务,代码为【mysql...
    99+
    2024-04-02
  • redis主从连接不成功错误问题及解决
    目录Redis主从连接不成功错误问题出现了最后找到了解决方法总结redis主从连接不成功错误 安装完redis后,设置主从,在从服务器上运行 127.0.0.1:6379> slaveof 192.168.159....
    99+
    2024-01-29
    redis主从 redis主从连接 redis主从连接不成功
  • 怎么解决mysql主从复制报错问题
    这篇文章主要介绍“怎么解决mysql主从复制报错问题”,在日常操作中,相信很多人在怎么解决mysql主从复制报错问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决my...
    99+
    2024-04-02
  • 分分钟搭建MySQL一主多从环境(r12笔记第31天)
       之前写过一篇分分钟搭建MySQL Group Replication的测试环境,如果我们在一台服务器上想搭建一主多从的测试环境,怎么能够分分钟搞定呢,其实稍花点时间写个脚本即可...
    99+
    2024-04-02
  • MySQL主从同步常见报错的解决办法
    数据库主从同步的时候有两个线程:IO线程和SQL线程。常见的报错时围绕这两个线程出现的。 IO线程:把主库binlog日志的内容记录到本机的中继日志文件里。IO线程报错的原因有两个,第一是指定主库信息时参...
    99+
    2024-04-02
  • 1分钟解决github push/pull报错443
    打开https://www.ipaddress.com/ 复制如图IP地址 文件夹打开C:\Windows\System32\drivers\etc,复制hosts文件,粘贴到桌面 在桌面用记事本打...
    99+
    2023-09-08
    github 443 git
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作