1220
database
data_error
ai_generated
true
ERROR 1220 (HY000): Error when executing command 'PURGE BINARY LOGS': Could not find target log file mentioned in the file index.
ID: database/mysql-binlog-purge-fail
82%Fix Rate
83%Confidence
1Evidence
2023-09-22First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| MySQL 5.7.42 | active | — | — | — |
| MySQL 8.0.33 | active | — | — | — |
| MySQL 8.0.35 | active | — | — | — |
Root Cause
MySQL 尝试清除二进制日志时,指定的日志文件不在 binlog 索引文件中,通常是因为索引文件损坏、手动删除了日志文件或日志文件路径不匹配。
generic中文
MySQL 尝试清除二进制日志时,指定的日志文件不在 binlog 索引文件中,通常是因为索引文件损坏、手动删除了日志文件或日志文件路径不匹配。
Official Documentation
https://dev.mysql.com/doc/refman/8.0/en/purge-binary-logs.htmlWorkarounds
-
82% success 使用 RESET MASTER 命令重置所有二进制日志(注意:会清除所有 binlog,影响复制):RESET MASTER;
使用 RESET MASTER 命令重置所有二进制日志(注意:会清除所有 binlog,影响复制):RESET MASTER;
-
70% success 修复 binlog 索引文件:确保索引文件中的路径与实际日志文件匹配,然后使用 PURGE BINARY LOGS TO 'mysql-bin.000010' 清除指定文件之前的日志。
修复 binlog 索引文件:确保索引文件中的路径与实际日志文件匹配,然后使用 PURGE BINARY LOGS TO 'mysql-bin.000010' 清除指定文件之前的日志。
中文步骤
使用 RESET MASTER 命令重置所有二进制日志(注意:会清除所有 binlog,影响复制):RESET MASTER;
修复 binlog 索引文件:确保索引文件中的路径与实际日志文件匹配,然后使用 PURGE BINARY LOGS TO 'mysql-bin.000010' 清除指定文件之前的日志。
Dead Ends
Common approaches that don't work:
-
70% fail
手动编辑 binlog 索引文件,但格式错误或遗漏条目,导致 MySQL 无法正确解析。
-
80% fail
直接删除 binlog 文件而不更新索引,导致 MySQL 在启动时出错。