CentOS中MySQL故障排查可按以下步骤进行:
-
检查服务状态
sudo systemctl status mysqld # 查看服务是否运行 sudo systemctl start mysqld # 启动服务(若未运行) -
查看错误日志
sudo tail -f /var/log/mysqld.log # 实时查看错误日志 grep -i "error" /var/log/mysqld.log # 过滤错误信息 -
排查配置文件
检查/etc/my.cnf或/etc/mysql/my.cnf,重点关注datadir、port、socket等配置是否正确,确保语法无误。 -
处理端口冲突
sudo netstat -tulnp | grep 3306 # 查看端口占用情况 sudo kill -9# 结束占用进程(若需修改端口,需同步修改配置文件) -
检查权限与文件系统
sudo chown -R mysql:mysql /var/lib/mysql # 确保数据目录权限正确 sudo chmod -R 700 /var/lib/mysql df -h # 检查磁盘空间是否充足 -
分析性能与连接问题
- 慢查询:启用慢查询日志,使用
pt-query-digest或mysqldumpslow分析。 - 连接数不足:调整
max_connections参数,或优化应用连接池。 - InnoDB故障:通过
SHOW ENGINE INNODB STATUS\G查看状态,必要时设置innodb_force_recovery修复。
- 慢查询:启用慢查询日志,使用
-
修复数据与表
sudo mysqlcheck -u root -p --all-databases --auto-repair # 修复表 sudo mysql_upgrade --force # 修复系统表(如mysql库损坏) -
其他高级操作
- 主从复制问题:通过
SHOW SLAVE STATUS查看延迟,使用SQL_SLAVE_SKIP_COUNTER跳过错误或重建复制。 - SELinux影响:临时关闭SELinux验证是否为权限问题:
setenforce 0。
- 主从复制问题:通过
提示:操作前建议备份数据,若自行处理无效,可联系专业支持或参考MySQL官方文档。[1,2,3,4,5,6,7,8,9,10]