You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7环境下PhpMyAdmin无法登录MySQL服务器求助

解决 phpMyAdmin 无法登录 MySQL 8 的问题

我之前碰到过几乎一模一样的环境组合问题,给你几个针对性的排查和解决步骤,应该能搞定:

1. 优先修复 MySQL 8 认证插件兼容性问题

这是最可能的核心原因:MySQL 8.0 默认使用 caching_sha2_password 认证插件,但你用的 PHP 5.4 的 mysqli 扩展完全不支持这个插件,导致 phpMyAdmin 无法建立有效连接。

解决方法:通过命令行登录 MySQL,把你的用户认证方式改成旧的 mysql_native_password:

ALTER USER '你的数据库用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的用户密码';
FLUSH PRIVILEGES;

如果你的用户允许从任意地址登录,就把 @'localhost' 改成 @'%'。

2. 调整 phpMyAdmin 连接配置细节

  • 把配置里的 $cfg['Servers'][$i]['host'] 从 localhost 改成 127.0.0.1:
    $cfg['Servers'][$i]['host'] = '127.0.0.1';
    
    原因是 localhost 在 PHP 环境中会优先尝试 Unix Socket 连接,而你的配置里没指定正确的socket路径,改用IP连接会强制走TCP协议,避免socket路径错误的问题。
  • 如果你想继续用socket连接,可以指定CentOS7下MySQL的默认socket路径:
    $cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
    
  • 注意:不要把端口改成33060,那是MySQL X Plugin的端口,常规MySQL服务的端口是3306,保持配置里的端口为空或设为3306即可。

3. 检查 PHP mysqli 扩展是否正常加载

执行以下命令确认mysqli扩展已安装并加载:

php -m | grep mysqli

如果没有输出任何内容,说明扩展未安装,执行以下命令安装:

yum install php-mysqli
systemctl restart httpd

4. 排查 SELinux 限制

CentOS7默认开启的SELinux可能会阻止Apache(phpMyAdmin的运行环境)访问MySQL服务,临时关闭SELinux测试:

setenforce 0

如果关闭后能正常登录了,就需要配置SELinux永久允许Apache连接数据库:

setsebool -P httpd_can_network_connect_db on

之后记得重新开启SELinux:setenforce 1

5. 关于版本兼容性的额外提醒

你用的 phpMyAdmin 4.4.15.10 是比较老的版本,对MySQL8的支持有限——即使解决了登录问题,后续可能会出现其他功能异常。不过这个版本最低支持PHP5.3,和你的PHP5.4兼容;如果之后想更稳定地使用MySQL8,建议升级PHP到5.5+,再把phpMyAdmin升级到4.8.x及以上版本(官方从4.8开始正式支持MySQL8)。

内容的提问来源于stack exchange,提问作者Mike Cameron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:12:38