1236: Got fatal error 1236 from master when reading data from binary log(バイナリログの読み取り中にマスターから致命的エラー 1236)
MySQL意味
レプリカ (スレーブ) サーバーがソース (マスター) のバイナリログからデータを読み取る際に致命的なエラーを受け取り、レプリケーションが停止した。レプリカはソースの 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 の欠落を確認する。
同じデータベースの他の項目
- 1049Unknown database 'name'(不明なデータベース 'name')
- 1364Field 'name' doesn't have a default value(フィールド 'name' にデフォルト値がない)
- 1206The total number of locks exceeds the lock table size(ロックの総数がロックテーブルのサイズを超えた)
- 1129Host 'host' is blocked because of many connection errors(接続エラーが多いためホスト 'host' がブロックされた)
- 1194Table 'name' is marked as crashed and should be repaired(テーブル 'name' がクラッシュとしてマークされ修復が必要)
- 1615Prepared statement needs to be re-prepared(プリペアド文の再準備が必要)
- 1553Cannot drop index needed in a foreign key constraint(外部キー制約で必要なインデックスは削除できない)