一、使用场景
一般来说,我们开发都会有测试环境和正式环境之分。当然,数据库也是要分开的。如果能用phpmyadmin直接访问两台服务器上的mysql就好了。这就是需求。
二、解决方案
1、找到phpmyadmin文件夹下面的config.sample.inc.php,重命名为config.inc.php。
2、打开config.inc.php,我们会发现里面有一些基本配置,是连接到localhost的。
3、如何连接单个远程服务器
//测试服务器数据库配置文件
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = '远程ip';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'pwd';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
我是通过在配置文件中直接写入远程ip等,实现了本地连接远程的目的。
4、如何连接多个远程服务器
//这里把远程服务器的用户名,密码等,拼接为一个多维数组
$connect_hosts = array(
'1'=>array(
"host" => "localhost", //本地服务器
"user" => "root",
"password" => ""
),
'2' => array(
"host" => "服务器IP", //服务器1
"user" => "username",
"password" => "pwd"
),
'3' => array(
"host" => "服务器ip", //服务器2
"user" => "username",
"password" => "pwd"
)
);
for ($i=1;$i<=count($connect_hosts);$i++) {
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = $connect_hosts[$i]['host']; //修改host
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['user'] = $connect_hosts[$i]['user']; //修改用户名
$cfg['Servers'][$i]['password'] = $connect_hosts[$i]['password']; //密码
/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';
}
这里需要注意:
(1)for循环的时候,
i要从1开始,不要从0开始(2)配置文件中有个′
i = 0’,记得注释掉。也就是注释掉无关的代码
三、结果展示
1、本地输入:localhost/phpmyadmin
这里我们选择自己要连接的服务器即可。
2、登录进去之后,进行服务器数据库之间的切换
OK,到此我们的phpmyadmin已经可以连接多个数据库了。