怎么解决MySQL中the master's binary log is corrupted报错问题

63次阅读
没有评论

共计 3698 个字符,预计需要花费 10 分钟才能阅读完成。

本篇内容介绍了“怎么解决 MySQL 中 the master s binary log is corrupted 报错问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

主从复制报错,下面是从库复制状态:

mysql show slave status\G;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.129.150

                  Master_User: replicat

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000197

          Read_Master_Log_Pos: 213271941

               Relay_Log_File: mysql-relay-bin.000584

                Relay_Log_Pos: 1037392990

        Relay_Master_Log_File: mysql-bin.000195

             Slave_IO_Running: Yes

            Slave_SQL_Running: No

                   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: 1037392827

              Relay_Log_Space: 2368588837

               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: 3

                  Master_UUID: 58c0c354-8652-11e6-bebe-40f2e9ddc532

             Master_Info_File: /data/DB/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: 161018 09:38:49

….

中继日志读主库日志失败,顺道看下错误日志信息,日志显示从库 9 点 37 分时重启了,38 分出现主从故障,看样子是因为从库异常重启导致的!

161018 09:37:39 mysqld_safe Number of processes running now: 0

161018 09:37:39 mysqld_safe mysqld restarted

2016-10-18 09:38:49 6042 [ERROR] Slave SQL: 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. Error_code: 1594

解决方法,重新设置主从进程解决:

mysql stop slave;

Query OK, 0 rows affected (0.02 sec)

mysql reset slave;

Query OK, 0 rows affected (0.57 sec)

mysql change master to master_host= 192.168.129.150 ,

    – master_user= replicat ,

    – master_password= passw ,

    – master_log_file= mysql-bin.000195 ,

    – master_log_pos=1037392827;

Query OK, 0 rows affected, 2 warnings (0.07 sec)

mysql start slave;

Query OK, 0 rows affected (0.03 sec)

以前从库异常重启都没发生这类情况,网上查了相关资料,发现和 relay_log_info_repository 和 relay_log_info_repository 这两个参数有关

mysql  show variables like  %relay_log_info_repository%
+—————————+——-+
| Variable_name | Value |
+—————————+——-+
| relay_log_info_repository | FILE |
+—————————+——-+

1 row in set (0.00 sec)

mysql  show variables like  %relay_log_info_repository%
+—————————+——-+
| Variable_name | Value |
+—————————+——-+
| relay_log_info_repository | FILE |
+—————————+——-+

1 row in set (0.00 sec)

把 FILE 修改成 TABLE 可以降低这种主从失败发生的概率。

“怎么解决 MySQL 中 the master s binary log is corrupted 报错问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计3698字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)