Percona MySQL 5.6 主主复制环境报错"Got fatal error 1236 from master.."
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,Percona MySQL 5.6 主主复制环境报错:mysql> show slave status\G*************************** 1. row ************
千家信息网最后更新 2025年11月07日Percona MySQL 5.6 主主复制环境报错"Got fatal error 1236 from master.."Percona MySQL 5.6 主主复制环境报错:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: vsql02
Master_User: mysql_slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000153
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 284
Relay_Master_Log_File: mysqld-bin.000153
Slave_IO_Running: No
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: 120
Relay_Log_Space: 601
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: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 22
Master_UUID: d49b3291-289a-11e6-9b9b-2c44fd7f8364
Master_Info_File: /data/dmcdb/mysql/database/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: 160809 11:42:02
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)
报错原因:
Master端二进制日志被删除,导致Slave端的IO线程无法在Master端读取到指定二进制日志
mysql> show variables like '%log%bin%';
+---------------------------------+----------------------------------------+
| Variable_name | Value |
+---------------------------------+----------------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/binlog/mysqld-bin |
| log_bin_index | /var/lib/mysql/binlog/mysqld-bin.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+----------------------------------------+
6 rows in set (0.00 sec)
[root@dmcdb2 ~]# cd /var/lib/mysql/binlog
[root@dmcdb2 binlog]# ls -trl
total 1613364
-rw-r--r-- 1 root root 1651957529 Feb 17 14:29 3962.sql
-rw-rw---- 1 mysql mysql 40 Aug 9 11:16 mysqld-bin.index
-rw-rw---- 1 mysql mysql 174 Aug 9 14:17 mysqld-relay-bin.000001
-rw-rw---- 1 mysql mysql 92 Aug 9 14:17 mysqld-relay-bin.index
-rw-rw---- 1 mysql mysql 461 Aug 9 14:21 mysqld-bin.000155
-rw-rw---- 1 mysql mysql 104500 Aug 9 14:39 mysqld-relay-bin.000002
修复方法:
由于丢失了Master端的二进制日志,只能从现有的二进制日志重新配置复制环境
--Master端
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysqld-bin.000155 | 120 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
--Slave端
mysql> change master to master_host='vsql02', master_port=3306, master_user='mysql_slave', master_password='mysql_slave', master_log_file='mysqld-bin.000155', master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: vsql02
Master_User: mysql_slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000155
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 284
Relay_Master_Log_File: mysqld-bin.000155
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: 120
Relay_Log_Space: 458
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: 0
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: 22
Master_UUID: d49b3291-289a-11e6-9b9b-2c44fd7f8364
Master_Info_File: /data/dmcdb/mysql/database/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
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)
--Master端
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: vsql02
Master_User: mysql_slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000153
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 284
Relay_Master_Log_File: mysqld-bin.000153
Slave_IO_Running: No
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: 120
Relay_Log_Space: 601
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: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 22
Master_UUID: d49b3291-289a-11e6-9b9b-2c44fd7f8364
Master_Info_File: /data/dmcdb/mysql/database/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: 160809 11:42:02
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)
报错原因:
Master端二进制日志被删除,导致Slave端的IO线程无法在Master端读取到指定二进制日志
mysql> show variables like '%log%bin%';
+---------------------------------+----------------------------------------+
| Variable_name | Value |
+---------------------------------+----------------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/binlog/mysqld-bin |
| log_bin_index | /var/lib/mysql/binlog/mysqld-bin.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+----------------------------------------+
6 rows in set (0.00 sec)
[root@dmcdb2 ~]# cd /var/lib/mysql/binlog
[root@dmcdb2 binlog]# ls -trl
total 1613364
-rw-r--r-- 1 root root 1651957529 Feb 17 14:29 3962.sql
-rw-rw---- 1 mysql mysql 40 Aug 9 11:16 mysqld-bin.index
-rw-rw---- 1 mysql mysql 174 Aug 9 14:17 mysqld-relay-bin.000001
-rw-rw---- 1 mysql mysql 92 Aug 9 14:17 mysqld-relay-bin.index
-rw-rw---- 1 mysql mysql 461 Aug 9 14:21 mysqld-bin.000155
-rw-rw---- 1 mysql mysql 104500 Aug 9 14:39 mysqld-relay-bin.000002
修复方法:
由于丢失了Master端的二进制日志,只能从现有的二进制日志重新配置复制环境
--Master端
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysqld-bin.000155 | 120 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
--Slave端
mysql> change master to master_host='vsql02', master_port=3306, master_user='mysql_slave', master_password='mysql_slave', master_log_file='mysqld-bin.000155', master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: vsql02
Master_User: mysql_slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000155
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 284
Relay_Master_Log_File: mysqld-bin.000155
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: 120
Relay_Log_Space: 458
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: 0
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: 22
Master_UUID: d49b3291-289a-11e6-9b9b-2c44fd7f8364
Master_Info_File: /data/dmcdb/mysql/database/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
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)
--Master端
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
二进制
日志
环境
端的
原因
方法
线程
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
杭州破壁人网络技术
数据库产物蚂蚁金融
数据库恢复不采用的技术是
维护网络安全手抄报文字
视频监控服务器软件
tbc灰烬使者服务器2022
对学校网络安全工作计划
听歌app软件开发
黎明觉醒有没有服务器
网络安全技能竞赛wp
荣耀系统服务器在哪里
七日杀怎么连服务器
软件开发自主创业
java邮件服务器搭建
软件开发要数学和物理知识吗
农业银行服务器招标多少台
软件开发两种基本策略的优劣
网络安全防范攻击的基本措施
代码和数据库上传之后怎么编写
数据库的保护技术
网游 数据库
山东源氏网络技术有限公司
软件开发描述文件
台式电脑可以当无盘服务器吗
中国软件开发市场前景
oppo手机怎么设置代理服务器
浙江融信网络技术有限公
网络技术简历模板
利用网络技术识别欺诈
多个SQL数据库系统