该错误本质是权限不足而非文件丢失,errcode 13 表示 permission denied;主因是 mysql 用户对 mysql-bin.index 所在目录无读写权限,常见于数据目录迁移后未同步修改属主或 selinux 策略。

MySQL 启动报 ./mysql-bin.index not found (Errcode: 13)
这个错误不是文件真丢了,而是 MySQL 进程没权限读写它。Errcode 13 就是操作系统返回的 Permission denied,和路径拼错、配置漏写无关。常见于迁移数据目录后——比如把 /var/lib/mysql 换成 /mnt/data/mysql,但忘了改目录属主或 SELinux 策略。
- 直接检查:用
ls -l /mnt/data/mysql/mysql-bin.index看属主是否为mysql:mysql - 如果属主是
root或其他用户,执行chown -R mysql:mysql /mnt/data/mysql - 在 CentOS/RHEL 上,还可能被 SELinux 拦住:临时验证可运行
setenforce 0;若恢复启动,则需补 SELinux 上下文:semanage fcontext -a -t mysqld_db_t "/mnt/data/mysql(/.*)?" && restorecon -Rv /mnt/data/mysql
log-bin-index 配置项指向的路径不生效
log-bin-index 是个“建议型”配置,MySQL 只在初始化时用它生成首个 mysql-bin.index,之后就固定按实际 binlog 文件名自动维护该索引。如果你改了 log-bin-index=/data/logs/mysql-bin.index 却发现 MySQL 仍在 datadir 下创建 mysql-bin.index,说明:
- 配置没加载成功:确认写在
[mysqld]段下,且配置文件被 MySQL 实际读取(可用mysqld --verbose --help | grep "default"查默认配置路径) - MySQL 已存在旧索引:只要
datadir下已有mysql-bin.index,MySQL 就忽略log-bin-index设置,直接复用它 - 路径是相对的:如果配置里写的是
log-bin-index=mysql-bin.index(无斜杠),MySQL 就会把它放在datadir下,而不是你期望的独立日志目录
手动重建 mysql-bin.index 的安全前提
不能随便 touch 一个空文件就完事。MySQL 启动时会逐行读取 mysql-bin.index,每行必须对应一个真实存在的 binlog 文件(如 mysql-bin.000123),否则启动失败或复制中断。
- 先停 MySQL:
systemctl stop mysqld - 进入
datadir,确认当前所有 binlog 文件:ls -1 mysql-bin.* - 用重定向覆盖索引:
ls -1 mysql-bin.* > mysql-bin.index - 别漏掉
mysql-bin.index自身:确保输出中不包含它(ls -1 mysql-bin.[0-9]*更稳妥) - 检查权限:
chown mysql:mysql mysql-bin.index,否则 MySQL 启动后无法追加新条目
从库报 Could not find first log file name in binary log index file
这错误发生在从库 IO 线程尝试连接主库拉日志时,和从库本地的 mysql-bin.index 无关,而是主库的 binlog 文件已被清理。此时:
- 不要碰从库的
mysql-bin.index,那是从库自己的 relay log 索引,跟主库 binlog 无关 - 登录主库执行
SHOW BINARY LOGS;,确认报错中提到的文件(如mysql-bin.000123)是否还在列表里 - 如果不在,说明主库已 purge,只能重设复制起点:在从库执行
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000156', MASTER_LOG_POS=198;(值来自SHOW MASTER STATUS) - 注意:这个操作跳过中间所有变更,数据一致性需业务侧兜底
真正容易被忽略的是:mysql-bin.index 文件本身不参与复制过程,它只是 MySQL 启动和清理 binlog 时的本地索引。主从之间传输的只有 binlog 内容,不传这个 index 文件。所以迁移、备份、权限修复,都只影响单实例启动和本地日志管理,不会波及复制链路——除非你误删了主库的 binlog 文件。











