1220
database
data_error
ai_generated
true
错误 1220 (HY000):执行命令 'PURGE BINARY LOGS' 时出错:在文件索引中找不到目标日志文件。
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%修复率
83%置信度
1证据数
2023-09-22首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| MySQL 5.7.42 | active | — | — | — |
| MySQL 8.0.33 | active | — | — | — |
| MySQL 8.0.35 | active | — | — | — |
根因分析
MySQL 尝试清除二进制日志时,指定的日志文件不在 binlog 索引文件中,通常是因为索引文件损坏、手动删除了日志文件或日志文件路径不匹配。
English
MySQL 尝试清除二进制日志时,指定的日志文件不在 binlog 索引文件中,通常是因为索引文件损坏、手动删除了日志文件或日志文件路径不匹配。
官方文档
https://dev.mysql.com/doc/refman/8.0/en/purge-binary-logs.html解决方案
-
使用 RESET MASTER 命令重置所有二进制日志(注意:会清除所有 binlog,影响复制):RESET MASTER;
-
修复 binlog 索引文件:确保索引文件中的路径与实际日志文件匹配,然后使用 PURGE BINARY LOGS TO 'mysql-bin.000010' 清除指定文件之前的日志。
无效尝试
常见但无效的做法:
-
70% 失败
手动编辑 binlog 索引文件,但格式错误或遗漏条目,导致 MySQL 无法正确解析。
-
80% 失败
直接删除 binlog 文件而不更新索引,导致 MySQL 在启动时出错。