在 CentOS 上 MySQL 无法启动是比较常见的问题,通常可以通过看错误日志 + 逐步排查来解决。下面给你一套通用排查思路,你可以按顺序来。
systemctl status mysqld
# 或(老版本)
systemctl status mysql
如果启动失败,重点看 报错信息 和 failed 原因。
journalctl -xe
或
cat /var/log/mysqld.log
常见关键错误:
Permission deniedCan't start server: Bind on TCP/IPInnoDB: Unable to lockData directory not foundMySQL 数据目录权限不对:
ls -ld /var/lib/mysql
修复权限:
chown -R mysql:mysql /var/lib/mysql
chmod 755 /var/lib/mysql
然后重启:
systemctl restart mysqld
netstat -tunlp | grep 3306
如果有其他进程占用:
/etc/my.cnf 中的端口临时关闭测试:
setenforce 0
systemctl restart mysqld
如果这样能启动,说明是 SELinux 问题:
grep mysql /var/log/audit/audit.log
或永久允许:
setsebool -P mysqld_connect_any 1
df -h
如果 / 或 /var 满了,清理日志或扩容。
检查:
/etc/my.cnf
/etc/my.cnf.d/
可尝试用默认配置测试:
mv /etc/my.cnf /etc/my.cnf.bak
systemctl restart mysqld
错误类似:
InnoDB: The system tablespace must be writable
可尝试:
rm -f /var/lib/mysql/ib_logfile*
systemctl restart mysqld
⚠️ 有风险,建议先备份数据
rpm -qa | grep mysql
重新安装:
yum remove mysql*
yum install mysql-server
你可以把下面内容贴出来,我帮你精准分析:
systemctl status mysqld
cat /var/log/mysqld.log | tail -50
告诉我:
我可以一步一步带你修。