1236: Got fatal error 1236 from master when reading data from binary log (binary log 읽기 중 master로부터 치명적 오류 1236 수신)
MySQL의미
replica(slave) 서버가 source(master)의 binary log에서 데이터를 읽는 중 치명적 오류를 받아 복제가 중지되었다. replica가 source의 binlog에서 예상하는 위치를 찾을 수 없다.
원인
source에서 필요한 binary log 파일이 삭제되었거나(binlog_expire_logs_seconds — 8.0 이전에는 expire_logs_days, 8.4에서 제거 — 또는 PURGE BINARY LOGS), GTID 갭/불일치, source 크래시 후 손상된 binlog 위치, 또는 replica가 너무 뒤처져 더 이상 존재하지 않는 로그를 요청하는 경우다. 'Could not find first log file name in binary log index file'이 전형적인 하위 메시지다.
해결 방법
복제 상태 확인: SHOW REPLICA STATUS\G (8.0.22+; 이전 버전에서는 SHOW SLAVE STATUS, 이전 구문은 8.4에서 제거됨). source에 있는 binlog 목록 확인: SHOW BINARY LOGS; 누락된 로그가 purge되었다면 새 백업/GTID 위치에서 replica를 재구축해야 한다(mysqldump --source-data — 8.0.26 이전에는 --master-data, 8.0.26+에서는 deprecated 별칭 — 또는 CLONE plugin). 워크로드에 맞게 source의 binlog 보존 기간을 늘리고, GTID를 사용한다면 GTID 갭을 확인한다.
같은 데이터베이스의 다른 항목
- 1049Unknown database 'name'
- 1364Field 'name' doesn't have a default value (필드에 기본값 없음)
- 1206The total number of locks exceeds the lock table size (전체 락 수가 락 테이블 크기 초과)
- 1129Host 'host' is blocked because of many connection errors (연결 오류가 많아 호스트 차단됨)
- 1194Table 'name' is marked as crashed and should be repaired (테이블이 crashed로 표시되어 복구 필요)
- 1615Prepared statement needs to be re-prepared (prepared statement 재준비 필요)
- 1553Cannot drop index needed in a foreign key constraint (외래 키 제약 조건에 필요한 인덱스 삭제 불가)