phpmyadmin 5.0 在 php 8.0 上必然报致命错误,因彻底移除了 mysql_* 函数且未适配 mysqli/pdo;必须升级至 5.2+ 版本,并正确配置连接、权限与认证方式。
phpmyadmin 5.0 在 php 8.0 上无法修复警告——它根本不能用,必须升级到 5.2+。
为什么 phpMyAdmin 5.0 + PHP 8.0 一定会出问题
PHP 8.0 彻底移除了 mysql_connect() 等所有 mysql_* 函数,而 phpMyAdmin 5.0 仍混用部分旧扩展逻辑(尤其在初始化、错误兜底和某些 legacy 兼容分支中)。即使你看到的是 Deprecated: mysql_connect(): The mysql extension is deprecated... 这类警告,实际运行时只要触发一次该函数调用,就会立刻变成 Fatal error: Uncaught Error: Call to undefined function mysql_connect(),页面直接白屏或卡在登录页。
这不是 warning 级别可屏蔽的问题,是底层函数已不存在的硬性不兼容。
-
error_reporting = E_ALL & ~E_DEPRECATED在 php.ini 中完全无效——函数不存在,报错类型是Fatal error,不是Deprecated - 试图用
mysqli扩展“覆盖”旧调用也行不通:phpMyAdmin 5.0 的代码路径未做 mysqli 完全适配,很多地方仍硬编码调用mysql_* - 宝塔或一键包里自带的 phpMyAdmin 5.0.x(如 5.0.4)默认就含这类问题,别信“改个配置就能跑”
确认你真在用 phpMyAdmin 5.0
别只看面板显示的“版本号”,执行以下命令查真实版本:
cat /www/server/phpmyadmin/VERSION
如果输出是 5.0.x 或 5.1.x,就坐实了问题根源。phpMyAdmin 5.0 要求 PHP ≥ 7.1,但 官方明确不支持 PHP 8.0+;5.1 仅实验性支持 PHP 8.0,无正式维护;只有 5.2.0+ 开始全面切换至 mysqli 和 PDO,且 5.2.2+ 已通过 PHP 8.0–8.2 的 CI 测试。
- 检查进程实际用的 PHP 版本:
ps aux | grep phpmyadmin,找类似/www/server/php/80/bin/php-cgi的路径(80表示 PHP 8.0) - 若路径含
80/81/82且 phpMyAdmin 版本 ≤ 5.1.4,就必须升级
升级到 5.2+ 的关键操作点
重装不是复制粘贴 zip 就完事,这几个动作漏一个都会失败:
- 停掉旧进程:
killall -9 php-cgi(避免端口占用或缓存干扰) - 删干净旧文件:
rm -rf /www/server/phpmyadmin(别只覆盖,残留 config.inc.php 可能被新版忽略) - 用宝塔官方脚本重装:
/www/server/panel/pytools/phpmyadmin.py install(它会自动选匹配 PHP 版本的最新稳定版) - 修权限:
chown -R www:www /www/server/phpmyadmin(否则tmp/不可写,登录后空白) - 显式设置临时目录:
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';并确保该路径由www-data或www用户可写
升级后仍报错?重点盯这三处
5.2+ 版本对连接初始化更严格,常见静默失败点比 5.0 更隐蔽:
-
$cfg['Servers'][$i]['auth_type']设为config时,若$cfg['Servers'][$i]['user']或$cfg['Servers'][$i]['password']错误,新版直接抛mysqli_real_escape_string(): Argument #1 ($mysql) must be of type mysqli, null given,而不是退回登录页 -
$cfg['Servers'][$i]['host']别写localhost——它会走 socket,容易连错 MySQL 实例(尤其多版本共存时),必须写127.0.0.1:3306显式指定 TCP - MySQL 8.0 用户必须用
mysql_native_password认证:ALTER USER 'pma_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';,否则连上也进不了库
升级不是终点,而是把“能不能跑”切换成“怎么配对”。5.2+ 的报错更直白,但要求你对 MySQL 连接细节、PHP 扩展状态和文件权限有真实掌控——这点比 5.0 的“假装能连”难应付,但也更可靠。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











