Ubuntu 配置 phpMyAdmin 以便我可以使用它来管理多个 MySQL 服务器的方法是什么?数据库参数在 中设置/etc/dbconfig-common/phpmyadmin.conf,但其中只有空间用于单个服务器的连接参数。我可以将它破解为/etc/phpmyadmin/config-db.phpand /etc/phpmyadmin/config.inc.php,但我认为必须有一种更优雅的方式。
相当老的问题,但仍然与搜索相关。
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)
我假设如下:
/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)
这看起来是最好的地方。
根据 phpMyAdmin文档,您可以在文件$cfg['Servers']中定义的数组中定义多个服务器config.inc.php。
| 归档时间: |
|
| 查看次数: |
75867 次 |
| 最近记录: |