phpMyAdmin 4.9 配置无法直接迁移到 5.2,因 $cfg['Servers'] 数组结构变更、$i 递增逻辑被弃用、pmadb 必须显式指定、extension 参数废弃、http 认证要求更严格;须改用 foreach 循环重构配置,并验证 phpmyadmin 库、错误日志及“显示服务器选择”开关。
phpmyadmin 4.9 的多服务器配置不能直接复制到 5.2,因为 $cfg['servers'] 数组结构和部分参数已被弃用或语义变更,硬搬会导致登录页只显示一个服务器、空白下拉列表,甚至 500 错误。
为什么 config.inc.php 直接迁移会失败
phpMyAdmin 5.0+ 彻底移除了对 $i 手动递增方式的隐式支持,且 $cfg['Servers'][$i]['auth_type'] 等字段的默认行为更严格;4.9 中常见的 $cfg['Servers'][1] + $cfg['Servers'][2] 静态写法在 5.2 中仍能加载,但若混用循环与手动索引(比如先 foreach 再 $i++),$cfg['Servers'] 键会被覆盖或跳号,导致后续服务器不被识别。
-
$cfg['Servers'][$i]['pmadb']在 5.2 中必须显式指向已存在的 phpmyadmin 系统库,否则“关系视图”“书签”等功能报错,而 4.9 可能容忍空值 -
$cfg['Servers'][$i]['extension']已废弃,5.2 强制使用mysqli,删掉该行否则启动警告 - 认证方式中
'http'在 5.2 中需配合 Web 服务器 Basic Auth 配置,否则登录页卡死——4.9 对此容错更强
正确迁移步骤:重构为 foreach 循环
放弃所有 $i = 0; $i++; 模式,改用官方推荐的数组驱动循环。这是唯一能保证索引连续、避免覆盖、兼容未来版本的方式。
- 把原配置中所有分散的
$cfg['Servers'][1]、$cfg['Servers'][2]块全部删掉 - 定义一个服务器描述数组,例如:
$servers = [ [ 'host' => 'localhost', 'port' => 3306, 'user' => 'devuser', 'password' => 'xxx', 'verbose' => 'Local Dev' ], [ 'host' => '192.168.10.5', 'port' => 3307, 'user' => 'produser', 'password' => 'yyy', 'verbose' => 'Staging DB' ] ]; - 在
$servers后插入标准循环(注意索引从 1 开始):$i = 0; foreach ($servers as $server) { $i++; $cfg['Servers'][$i]['host'] = $server['host']; $cfg['Servers'][$i]['port'] = $server['port']; $cfg['Servers'][$i]['user'] = $server['user']; $cfg['Servers'][$i]['password'] = $server['password']; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['verbose'] = $server['verbose']; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // 必须存在且已初始化 }
迁移后必须验证的三项
改完配置别急着重启,先检查这三处,否则白忙活:
- 确认
phpmyadmin系统库已存在且表结构完整:运行mysql -u root -p -e "USE phpmyadmin; SHOW TABLES;",应返回至少 12 张表(如pma__bookmark、pma__relation) - 检查 PHP 错误日志:5.2 默认关闭
display_errors,若登录页空白,去/var/log/apache2/error.log或php-fpm.log搜Undefined index: Servers或Invalid argument supplied for foreach() - 登录页右上角点“选项”,确认“显示服务器选择”已勾选——这个开关在 5.2 中默认关闭,4.9 默认开启
最易被忽略的是 pmadb 库缺失和“显示服务器选择”开关关闭,这两项导致的现象一模一样:登录页只有单个服务器或无下拉框。动手前先扫一眼这两个地方,比反复改配置快得多。
立即学习“PHP免费学习笔记(深入)”;



















