要使phpmyadmin启动时显示登录页并列出所有服务器,必须关闭单服务器直连模式:确保$cfg['servers']索引从1开始、每个服务器块含host和auth_type='cookie'、删除user/password及auth_type='config'字段、设置blowfish_secret,并重启web服务。
phpmyadmin 启动时不自动连接默认服务器,本质是关闭「单服务器直连模式」,强制它显示登录页并列出所有已配置的服务器供手动选择。默认行为(比如只填了 $cfg['servers'][1] 且没设 auth_type 为 cookie)会让它跳过登录页、直接尝试连第一个服务器——失败就报错,成功就进首页,根本看不到下拉框。
确认 $cfg['Servers'] 索引从 1 开始且不为空
phpMyAdmin 只识别 $cfg['Servers'][1]、$cfg['Servers'][2] 这类显式索引,[0] 会被忽略。如果只配了一个服务器但写成:
$cfg['Servers'][0]['host'] = 'localhost';
它不会生效,反而可能因数组结构异常导致登录页空白。必须确保:
- 第一个服务器用
$cfg['Servers'][1],第二个用$cfg['Servers'][2],依此类推 - 每个
$cfg['Servers'][$i]块里至少包含host和auth_type - 不要在
if或函数里动态赋值$cfg['Servers'][$i],避免作用域丢失
必须显式设置 auth_type = 'cookie'
这是最关键的开关。如果漏掉或写成 'config',phpMyAdmin 就会跳登录页、直连服务器。正确写法是:
$cfg['Servers'][1]['auth_type'] = 'cookie';<br>$cfg['Servers'][2]['auth_type'] = 'cookie';
注意:cookie 是唯一能触发登录页 + 服务器下拉列表的认证方式;http 会弹浏览器基础认证框;config 则完全绕过登录页。
另外别忘了加 $cfg['blowfish_secret'](哪怕只是随机字符串),否则 cookie 认证会失败,页面白屏或反复跳回登录页。
删掉或注释掉自动登录相关字段
检查 config.inc.php 里有没有这些行,有就删掉或加 // 注释:
$cfg['Servers'][$i]['user'] = 'root';$cfg['Servers'][$i]['password'] = 'xxx';-
$cfg['Servers'][$i]['auth_type'] = 'config';(这个尤其要改)
只要任一服务器块里存在 user + password + auth_type = 'config' 的组合,phpMyAdmin 就会优先用这组凭据直连,压根不展示登录界面。
多服务器配置必须用循环或显式索引,不能靠“复制粘贴+手调$i”
手动写两段几乎一样的配置,然后靠自己记住 $i=1、$i=2,极易出错。更稳的方式是用数组 + foreach(官方 config.manyhosts.inc.php 就这么干):
$servers = [<br> ['host' => '192.168.1.10', 'verbose' => 'Dev DB'],<br> ['host' => 'prod-db.myqcloud.com', 'verbose' => 'Prod CDB']<br>];<br>foreach ($servers as $i => $server) {<br> $cfg['Servers'][$i+1]['host'] = $server['host'];<br> $cfg['Servers'][$i+1]['verbose'] = $server['verbose'];<br> $cfg['Servers'][$i+1]['auth_type'] = 'cookie';<br>}
这样既避免索引错乱,又方便增删服务器——改数组就行,不用碰索引数字。
最后提醒:改完 config.inc.php 一定要重启 Web 服务(sudo systemctl restart apache2 或 sudo service httpd restart),否则 PHP 缓存可能让修改不生效;WAMP 用户要「重启所有服务」,不是只点 Apache。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











