能,但必须手动配置多服务器支持——phpmyadmin默认只连一个$cfg['servers'][1],不写循环或重复定义,它根本看不到第二个服务器;必须确保config.inc.php存在且被正确读取,用从1开始的连续索引foreach动态生成$cfg['servers']数组,并设auth_type='cookie'才能显示登录下拉框。

能,但必须手动配置多服务器支持——phpMyAdmin默认只连一个 $cfg['Servers'][1],不写循环或重复定义,它根本看不到第二个服务器。
确认 config.inc.php 是唯一生效的配置文件
phpMyAdmin 启动时只读 config.inc.php,config.sample.inc.php 或其他命名的文件完全无效。如果改了 config.sample.inc.php 却没重命名,所有配置都不会起作用。
- 检查文件是否存在:
ls -l /usr/share/phpmyadmin/config.inc.php(Debian/Ubuntu)或/etc/phpmyadmin/config.inc.php - 若不存在,从 sample 复制:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php - 确保 Web 服务器用户(如
www-data)有读取权限,否则页面空白或报 500 错误
用 for 循环定义多个服务器,索引必须从 1 开始
phpMyAdmin 要求每个服务器配置的键是连续正整数,且不能跳过 1。用 $i = 0 或手动写 $cfg['Servers'][2] 而没定义 [1],会导致登录页只显示一个选项、甚至白屏。
- 在
config.inc.php底部添加如下结构(不要删原有$cfg['blowfish_secret']等基础项):
$connect_hosts = [
'local' => [
'host' => 'localhost',
'user' => 'root',
'password' => '',
'auth_type' => 'config'
],
'remote-mariadb' => [
'host' => '192.168.10.50',
'port' => '3307',
'user' => 'admin',
'password' => 'sekret123',
'auth_type' => 'cookie'
]
];
<p>$i = 0;
foreach ($connect_hosts as $name => $conf) {
$i++;
$cfg['Servers'][$i]['host'] = $conf['host'];
$cfg['Servers'][$i]['port'] = $conf['port'] ?? '3306';
$cfg['Servers'][$i]['user'] = $conf['user'];
$cfg['Servers'][$i]['password'] = $conf['password'];
$cfg['Servers'][$i]['auth_type'] = $conf['auth_type'];
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = empty($conf['password']);
}</p>
$i 必须在循环外初始化为 0,并在每次迭代前递增,保证索引是 1, 2…mysqli 扩展就能连上远程 MariaDB 连接失败的三个硬性条件
即使 phpMyAdmin 配置正确,远程 MariaDB 仍可能拒绝连接——这不是 PHP 层问题,而是数据库侧限制。
- 远程 MariaDB 必须监听非
127.0.0.1地址:检查/etc/mysql/mariadb.conf.d/50-server.cnf中bind-address是否为0.0.0.0或具体内网 IP - 用户必须被授权从指定 IP 登录:
GRANT ALL ON *.* TO 'admin'@'192.168.10.%' IDENTIFIED BY 'sekret123'; FLUSH PRIVILEGES; - 防火墙放行端口:
sudo ufw allow from 192.168.10.10 to any port 3307(假设你的 phpMyAdmin 服务器 IP 是192.168.10.10)
最常被忽略的是:phpMyAdmin 的 auth_type 设为 config 时,密码明文写在配置里,适合本地可信环境;而远程服务器强烈建议用 cookie,否则登录页不会出现服务器选择下拉框——这个开关控制着整个多服务器 UI 的可见性。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











