mysql could not open log file_数据库主从报Got fatal error 1236 from master when reading data from binary l...

数据库主从不同步时报“Got fatal error 1236 from master when reading data from binary log: 'Could not open log file'”解决方法。

查看问题点:

mysql> show slave status\G

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

Slave_IO_State:

Master_Host: 192.168.109.132

Master_User: replicater

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: dbmaster-bin.000002

Read_Master_Log_Pos: 120

Relay_Log_File: mysqld-relay-bin.000012

Relay_Log_Pos: 286

Relay_Master_Log_File: dbmaster-bin.000002

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

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 open log file'

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 132

Master_UUID: 03ab7a6c-33f3-11e9-b59b-000c2956d023

Master_Info_File: /data/mysql/data/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: 190220 09:00:13

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读到文件了的内容。

解决方法:

master端:

mysql> flush logs;

Query OK, 0 rows affected (0.02 sec)

mysql> show master status;

+---------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+---------------------+----------+--------------+------------------+-------------------+

| dbmaster-bin.000005 | 120 | | | |

+---------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

记住file和position这两个选项

slave端:

mysql> stop slave;

Query OK, 0 rows affected (0.01 sec)

mysql> change master to master_log_file ='dbmaster-bin.000005',master_log_pos=120;

Query OK, 0 rows affected (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

再次查看状态就会发现成功了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个 MySQL 错误,表示在从二进制日志中读取数据时出现了严重错误 1236,原因是找不到二进制日志索引文件中的第一个日志文件名。建议检查日志文件和索引是否存在以及是否有读取权限,如果有必要可以尝试重建日志文件和索引。 ### 回答2: MySQL数据库出现“got fatal error 1236 from master when reading data from binary log: 'could not find first log file name in binary log index file'”这个错误,一般是由于MySQL主从复制机制出了问题而引起的。 这个错误通常出现在MySQL主从复制过程中,因为主库的binary log文件找不到导致从库无法继续进行复制操作,从而导致复制过程被中断。 造成这种错误的原因很多,在MySQL主从复制的过程中,可能会由于网络问题、磁盘故障、权限设置不当等多种原因导致需要复制的binary log文件丢失或者找不到,从而引起这个问题的出现。 对于这个错误,可以尝试以下几种常见的解决方法: 1. 查找丢失的binary log文件和索引文件,将其复制到从库中对应的位置。 2. 检查从库的权限和配置是否正确,确保从库可以读取主库的binary log。 3. 确保MySQL版本在主从库之间一致。 4. 尝试重新启动MySQL服务,并检查MySQL日志文件是否有其他错误信息。 总的来说,出现这个错误需要仔细排查问题,找到出现问题的原因并及时解决。只有在解决了这个问题之后,才能恢复MySQL主从复制的正常运行,保证数据的正确性。 ### 回答3: 这个错误提示表明在从二进制日志中读取数据时,主服务器出现了致命错误1236,并且无法在二进制日志索引文件中找到第一个日志文件的名称。可能的原因是二进制日志索引文件已损坏或被删除,或者日志文件已被清除导致不匹配。 解决此问题的方法是: 1.检查二进制日志索引文件 运行“show binary logs”命令,查看二进制日志文件的名称和位置。查看索引文件是否存在,如果不存在,则尝试恢复或重新创建该文件。如果该文件存在,但因某些原因包含不正确或损坏的数据,则可能需要手动编辑它来更新正确的文件名称和位置。 2.查找缺失的日志文件 如果主服务器无法找到第一个日志文件的名称,则可能是因为该文件已被删除或移动。在主数据库的日志目录中检查缺失的日志文件,如果找到,请将它们移回原始位置。如果日志文件已经丢失,则可能需要从备份中恢复丢失的数据。 3.重启主服务器 有时,重启主服务器可以清除潜在的错误状态,从而解决此问题。在重启前,建议停止从服务器上的复制进程,并确保所有活动连接都已关闭。 总之,当出现“从主服务器读取二进制日志时发生致命错误1236”的错误时,您需要检查二进制日志索引文件和缺失的日志文件,并尝试修复或恢复它们,或者从备份中恢复缺失的数据。如果问题仍然存在,请重启主服务器并查看错误日志以获取更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值