# 错误 1220 (HY000)：执行命令 'PURGE BINARY LOGS' 时出错：在文件索引中找不到目标日志文件。

- **ID:** `database/mysql-binlog-purge-fail`
- **领域:** database
- **类别:** data_error
- **错误码:** `1220`
- **验证级别:** ai_generated
- **修复率:** 82%

## 根因

MySQL 尝试清除二进制日志时，指定的日志文件不在 binlog 索引文件中，通常是因为索引文件损坏、手动删除了日志文件或日志文件路径不匹配。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| MySQL 5.7.42 | active | — | — |
| MySQL 8.0.33 | active | — | — |
| MySQL 8.0.35 | active | — | — |

## 解决方案

1. ```
   使用 RESET MASTER 命令重置所有二进制日志（注意：会清除所有 binlog，影响复制）：RESET MASTER;
   ```
2. ```
   修复 binlog 索引文件：确保索引文件中的路径与实际日志文件匹配，然后使用 PURGE BINARY LOGS TO 'mysql-bin.000010' 清除指定文件之前的日志。
   ```

## 无效尝试

- **** — 手动编辑 binlog 索引文件，但格式错误或遗漏条目，导致 MySQL 无法正确解析。 (70% 失败率)
- **** — 直接删除 binlog 文件而不更新索引，导致 MySQL 在启动时出错。 (80% 失败率)
