上一篇
📢 最新动态(2025年7月)
近期MySQL社区报告多起MY-010431
错误集中爆发,主要影响8.0.30+版本的主从复制环境,官方已确认该问题与特定权限配置冲突有关,临时解决方案可参考下文👇
当MySQL从库尝试读取主库的复制信息文件(如master.info
或relay-log.info
)时,突然抛出以下错误:
[ERROR] [MY-010431] [Server] Failed to open the info file (file_name='./relay-log.info', errno=13 - Permission denied) SQLSTATE: HY000
伴随症状:
1️⃣ 权限问题(90%案例)
mysql
)对datadir
目录无读写权限 SELinux/AppArmor
等安全模块拦截文件访问 2️⃣ 文件损坏(罕见但致命)
*.info
文件损坏 3️⃣ 路径配置错误
my.cnf
中配置了错误的数据目录路径 # 检查文件归属(远程服务器执行) ls -l /var/lib/mysql/*.info # 修正权限(假设mysql是服务账户) chown mysql:mysql /var/lib/mysql/*.info chmod 660 /var/lib/mysql/*.info # 如果使用SELinux restorecon -Rv /var/lib/mysql/
-- 在MySQL客户端执行 STOP SLAVE; START SLAVE; SHOW SLAVE STATUS\G -- 确认错误是否消除
# 检查文件完整性 cat /var/lib/mysql/relay-log.info # 正常应显示类似内容: # 7 # ./mysql-relay-bin.000258 # 155 # mysql-bin.000107 # 463741287 # 0 # 0 ``` 乱码,需进入**步骤4**重建 ### 步骤4:核弹级解决方案(重建复制) ```sql -- 主库获取当前binlog位置(需主库权限) SHOW MASTER STATUS; -- 记录File和Position -- 从库重置配置 STOP SLAVE; RESET SLAVE ALL; -- 重新配置复制(替换实际值) CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000107', MASTER_LOG_POS=463741287; START SLAVE;
在my.cnf
添加加固配置:
[mysqld] relay_log_info_repository = TABLE # 将信息存入mysql.slave_relay_log_info表 master_info_repository = TABLE sync_relay_log_info = 1
MY-010431
错误码 该错误在MySQL 8.0中更常见,因为:
relay_log_recovery=ON
遇到顽固案例时,可尝试mysqld --initialize-insecure
重建数据目录(⚠️ 会清空数据!)
🎯 总结
90%的MY-010431
错误通过权限修正即可解决,如遇复杂情况,按本文步骤逐步排查,必要时重建复制通道,建议定期检查从库状态,防患于未然!
本文由 汤嘉宝 于2025-07-31发表在【云服务器提供商】,文中图片由(汤嘉宝)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/493120.html
发表评论