phpmyadmin 同时连接多个服务器的数据库
一、使用场景
一般来说,我们开发都会有测试环境和正式环境之分。当然,数据库也是要分开的。如果能用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要从1开始,不要从0开始(2)配置文件中有个′i = 0’,记得注释掉。也就是注释掉无关的代码
三、结果展示
1、本地输入:localhost/phpmyadmin
这里我们选择自己要连接的服务器即可。