如何配置phpMyAdmin访问多台服务器?

Mik*_*ott 15 mysql phpmyadmin

Ubuntu 配置 phpMyAdmin 以便我可以使用它来管理多个 MySQL 服务器的方法是什么?数据库参数在 中设置/etc/dbconfig-common/phpmyadmin.conf,但其中只有空间用于单个服务器的连接参数。我可以将它破解为/etc/phpmyadmin/config-db.phpand /etc/phpmyadmin/config.inc.php,但我认为必须有一种更优雅的方式。

Mar*_*arc 9

相当老的问题,但仍然与搜索相关。

phpMyAdmin 对配置文件使用普通的 PHP,并使用$cfg['Servers']数组来获取配置的服务器。

因此,正确的方法是为要添加的/etc/phpmyadmin/conf.d每个服务器添加一个新的配置文件。只需要以文件名结尾.php即可包含它们,但your_new_server.inc.php为了一致性而使用它是个好主意。

给定配置文件的最少内容是:

<?php // let the interpreter know this is code
$cfg['Servers'][2]['host']     = 'THE_HOST';
$cfg['Servers'][2]['user']     = 'THE_USER';
$cfg['Servers'][2]['password'] = 'THE_PASSWORD';
Run Code Online (Sandbox Code Playgroud)

如另一个答案所述,您可以查看/usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php文件以获取更多参数。

重要提示:您必须为每个新文件增加数组的索引 (2),如果您想继续连接到 localhost,请避免使用 1。

如果打包 phpMyAdmin 的人考虑过这一点,他们可以$i在包含conf.d目录中文件的 foreach 中添加递增变量,因此您可以将其用作索引,而不必担心必须手动增加它,但遗憾的是事实并非如此。不过你可以自己做。


[2019]:较新的 PHP 版本允许使用这种更简洁的替代语法:

<?php $cfg['Servers'][] = ['host'=>'my_host', 'user'=>'my_user', 'password'=>'my_pass'];
Run Code Online (Sandbox Code Playgroud)


Nan*_*nne 2

我假设如下:

  • /etc/phpmyadmin/将是添加配置的最合理的位置
  • /etc/phpmyadmin/config-db.php是默认(本地?)配置的位置。这是因为它是默认值,只有一个数据库
  • /etc/phpmyadmin/config.inc.php读取默认数据库,因此它有一个。至少用了这个,那么你就有了一个数据库。如果您的配置发生更改,则会config-db.php更改,因此不会修改文件的“本地”更改

因此我的结论是在这部分下面添加一个额外的服务器:

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    //reading from config-db.php
}

//$i++ was allready done in if above
//Adding extra servers
 $cfg['Servers'][$i]['host'] = 'serverhost.host.tld';
 $cfg['Servers'][$i]['extension'] = 'mysqli';
//...etc
Run Code Online (Sandbox Code Playgroud)

这看起来是最好的地方。


Car*_*iel 1

根据 phpMyAdmin文档,您可以在文件$cfg['Servers']中定义的数组中定义多个服务器config.inc.php

  • 在通用 phpMyAdmin 安装中,是的。但是Ubuntu有自己的配置文件来生成config.inc.php文件的那部分,我想知道Ubuntu的配置方式,而不必覆盖Ubuntu配置。 (2认同)
  • 是的,我可以重新生成文件 config-db.php,但从中获取数据库连接参数的配置文件 (/etc/dbconfig-common/phpmyadmin.conf) 只有空间来配置一台数据库服务器。我想知道如何配置多个数据库服务器。 (2认同)