DBAtlas · 数据库运维图谱

1236: Got fatal error 1236 from master when reading data from binary log(从 master 读取二进制日志数据时收到致命错误 1236)

MySQL

含义

副本(slave)服务器在从源(master)的二进制日志读取数据时收到致命错误,复制已停止。副本在源的 binlog 中找不到它期望的位置。

原因

所需的二进制日志文件在源上已被删除(binlog_expire_logs_seconds —— 8.0 之前为 expire_logs_days,已在 8.4 中移除 —— 或 PURGE BINARY LOGS);GTID 存在缺口/不匹配;源崩溃后 binlog 位置损坏;或副本落后太多,请求了一个已不存在的日志。典型的子消息是 'Could not find first log file name in binary log index file'。

解决方法

检查复制状态:SHOW REPLICA STATUS\G(8.0.22+;旧版本中为 SHOW SLAVE STATUS,旧语法已在 8.4 中移除)。列出源上可用的 binlog:SHOW BINARY LOGS; 如果缺失的日志已被清除,必须从新的备份/GTID 位置重建副本(mysqldump --source-data —— 8.0.26 之前为 --master-data,在 8.0.26+ 中是已弃用的别名 —— 或 CLONE 插件)。根据负载增加源上的 binlog 保留时间;如果使用 GTID,检查 GTID 缺口。

在 DBAtlas 中打开 →

同一数据库的其他条目