共计 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 小编将为大家输出更多高质量的实用文章!