Ubuntu系统下PhpMyAdmin登录报错及MySQL服务启动失败求助
解决Ubuntu下MySQL服务启动失败及PhpMyAdmin连接报错问题
首先得明确核心问题:你的MySQL服务根本没启动成功——从你给出的sudo service mysql status输出能看到它处于failed状态,这才是PhpMyAdmin报mysqli_real_connect(): no such file or directory的根源,修改config.inc.php里的host地址自然解决不了问题。咱们得先把MySQL服务拉起来,再处理后续连接问题。
第一步:查看MySQL启动失败的详细日志
systemd的状态信息太简略,得看具体错误日志定位原因:
- 方法1:用journalctl查看服务日志
加上sudo journalctl -u mysql.service -b-b参数只显示本次开机后的日志,更容易找到关键错误信息。 - 方法2:直接查看MySQL的错误日志文件(通常路径是这个)
sudo cat /var/log/mysql/error.log
第二步:针对常见启动失败原因的排查方案
根据日志里的错误提示,对应以下常见场景处理:
1. 数据目录权限问题
MySQL的数据目录默认是/var/lib/mysql,如果该目录的所有者不是mysql用户,服务会启动失败:
- 检查权限:
输出里的所有者和组应该是sudo ls -ld /var/lib/mysqlmysql:mysql。 - 如果权限不对,修复后重启服务:
sudo chown -R mysql:mysql /var/lib/mysql sudo service mysql restart
2. 配置文件语法错误或路径错误
检查MySQL的主配置文件(通常是/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf):
- 确认
datadir参数指向的路径存在且正确,比如:datadir = /var/lib/mysql - 检查配置文件里有没有语法错误,比如遗漏分号、括号不匹配等。修改后尝试重启服务:
sudo service mysql restart
3. 端口被占用
MySQL默认用3306端口,如果该端口被其他进程占用,服务启动失败:
- 检查端口占用情况:
sudo lsof -i :3306 # 或者用netstat sudo netstat -tulpn | grep 3306 - 如果发现其他进程占用,杀掉该进程(替换
PID为实际进程ID):
或者修改MySQL配置文件里的sudo kill -9 PIDport参数,换一个未被占用的端口,再重启服务。
4. 日志文件权限问题
如果MySQL的错误日志文件/var/log/mysql/error.log的所有者不是mysql,也会导致启动失败:
- 修复权限后重启:
sudo chown mysql:mysql /var/log/mysql/error.log sudo service mysql restart
第三步:MySQL服务启动成功后验证PhpMyAdmin连接
当你执行sudo service mysql status看到服务处于active (running)状态后,再访问PhpMyAdmin:
- 如果仍有连接问题,确认
config.inc.php的配置:
保存配置后刷新页面即可。$cfg['Servers'][$i]['host'] = '127.0.0.1'; $cfg['Servers'][$i]['port'] = '3306'; $cfg['Servers'][$i]['user'] = 'root'; // 或你的MySQL用户名 $cfg['Servers'][$i]['password'] = 'your_password'; // 对应密码
内容的提问来源于stack exchange,提问作者malekiamir
相关产品推荐
相关产品推荐

