如何使用本地phpMyAdmin客户端访问远程服务器?
假设有一个远程服务器,我的电脑上安装了phpMyAdmin客户端。 如何访问此服务器并通过phpMyAdmin客户端进行pipe理? 那可能吗?
只需将下面几行添加到底部的“config.inc.php”文件中:
$i++; $cfg['Servers'][$i]['host'] = 'HostName:port'; //provide hostname and port if other than default $cfg['Servers'][$i]['user'] = 'userName'; //user name for your remote server $cfg['Servers'][$i]['password'] = 'Password'; //password $cfg['Servers'][$i]['auth_type'] = 'config'; // keep it as config
。 你将得到“当前服务器:”同时下载“127.0.0.1”和你提供的“$ cfg ['Servers'] [$ i] ['host']”服务器之间的凸轮切换。
更多详情: http : //goo.gl/FZ6nqD
它可以做到,但你需要改变phpMyAdminconfiguration,阅读这篇文章: http : //www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin
如果由于任何原因链接死亡,您可以使用以下步骤:
- findphpMyAdmin的configuration文件,名为
config.inc.php
- find
$cfg['Servers'][$i]['host']
variables,并将其设置为远程服务器的IP或主机名 - find
$cfg['Servers'][$i]['port']
variables,并将其设置为远程mysql端口。 通常这是3306
- find
$cfg['Servers'][$i]['user']
和$cfg['Servers'][$i]['password']
variables,并将其设置为远程服务器的用户名和密码
如果没有适当的服务器configuration,连接可能比本地连接慢,例如,使用IP地址而不是主机名可能会稍微快一点,以避免服务器从主机名查找IP地址。
另外,请记住,如果以这种方式连接,则远程数据库的用户名和密码将以纯文本forms存储,因此应采取措施确保无人能够访问此configuration文件。 或者,您可以将用户名和密码variables留空,以便在您每次login时提示input它们,这更安全。
其他答案指出,从phpMyAdmin的本地实例访问远程MySQL服务器当然是可能的。 为此,必须将远程服务器的MySQL服务器configuration为接受远程连接 ,并允许通过防火墙的stream量来监听MySQL正在监听的端口号。 我更喜欢涉及SSH隧道的稍微不同的解决scheme。
以下命令将build立一条SSH隧道,将所有对端口3307的请求从本地机器转发到远程机器上的端口3306:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
出现提示时,应该在远程计算机上inputroot用户的密码。 这将打开隧道。 如果你想在后台运行,你需要添加-f
参数,并在本地机器和远程机器之间build立无密码的SSH 。
在获得SSH隧道后,可以通过修改/etc/phpmyadmin/config.inc.php
文件将远程服务器添加到本地phpMyAdmin的服务器列表中。 将以下内容添加到文件的末尾:
$cfg['Servers'][$i]['verbose'] = 'Remote Server 1';// Change this to whatever you like. $cfg['Servers'][$i]['host'] = '127.0.0.1'; $cfg['Servers'][$i]['port'] = '3307'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['compress'] = FALSE; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $i++;
我写了一个更深入的博客文章关于这一点,以防您需要额外的帮助。
按照这个博客文章。 你可以很容易地做到这一点。 https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/
文件config.inc.php包含phpMyAdmin安装的configuration设置。 它使用一个数组为每个可连接的服务器存储一组configuration选项,默认情况下只有一个,你自己的机器或本地主机。 为了连接到另一台服务器,你必须添加另一组configuration选项到configuration数组。 你必须编辑这个configuration文件。
首先打开phpMyAdmin文件夹中的config.inc.php文件。 在wamp服务器中,您可以在wamp \ apps \ phpmyadmin文件夹中find它。 然后将下面的部分添加到该文件。
$i++; $cfg['Servers'][$i]['host'] = 'hostname/Ip Adress'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['compress'] = FALSE; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'username'; $cfg['Servers'][$i]['password'] = 'password';
我们来看看这个variables是什么意思。
$i++ :- Incrementing variable for each server $cfg['Servers'][$i]['host'] :- Server host name or IP adress $cfg['Servers'][$i]['port'] :- MySQL port (Leave a blank for default port. Default MySQL port is 3306) $cfg['Servers'][$i]['socket'] :- Path to the socket (Leave a blank for default socket) $cfg['Servers'][$i]['connect_type'] :- How to connect to MySQL server ('tcp' or 'socket') $cfg['Servers'][$i]['extension'] :- php MySQL extension to use ('mysql' or 'msqli') $cfg['Servers'][$i]['compress'] :- Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0) $cfg['Servers'][$i]['auth_type'] :- Method of Authentication $cfg['Servers'][$i]['username'] :- Username to the MySQL database in remote server $cfg['Servers'][$i]['password'] :- Password to the MySQL database int he remote server
添加这个configuration部分后,重新启动你的服务器,现在你的phpMyAdmin主页将会改变,它会显示一个字段来select服务器。
现在,您可以select您的服务器并通过input该数据库的用户名和密码来访问您的远程数据库。
您可以在phpMyAdmin安装的config.inc.php文件中设置。
$cfg['Servers'][$i]['host'] = '';
正如在答案c.hill回答所述,如果你想要一个安全的解决scheme,我会build议打开SSH隧道到您的服务器。
下面是Windows用户的方法:
-
从腻子网站下载Plink和Putty,并将文件放在您select的文件夹中(在我的示例
C:\Putty
) -
打开Windows控制台并cd到Plink文件夹:
cd C:\Putty
-
打开SSH隧道并redirect到端口3307:
plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk
哪里:
- 3307是您要redirect到的本地端口
- localhost是远程服务器上MySQL DB的地址(默认为localhost)
- 3306是远程服务器上的PhpMyAdmin的端口(缺省情况下为3306)
最后你可以设置PhpMyAdmin:
- 通过在config.inc.php的末尾添加以下行,将远程服务器添加到本地PhpMyAdminconfiguration中
要添加的行:
$i++; $cfg['Servers'][$i]['verbose'] = 'Remote Dev server'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = '3307'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['compress'] = FALSE; $cfg['Servers'][$i]['auth_type'] = 'cookie';
- 您现在应该可以连接
http://127.0.0.1/phpmyadmin
如果您不想在每次需要连接远程服务器时打开控制台,只需创build一个batch file(通过将2个命令行保存在.bat文件中)即可。
我会添加这个作为评论,但我的声誉还不够高。
在版本4.5.4.1deb2ubuntu2,我猜测任何其他版本4.5.x或更新。 根本不需要修改config.inc.php文件。 而不是去多一个目录下conf.d.
创build一个带有“.php”扩展名的新文件并添加行。 这是一个更好的模块化方法,并隔离每个远程数据库服务器访问信息。
转到最底层的\ phpMyAdmin \ config.inc.php文件,更改主机,用户名,密码等主机信息。
在Ubuntu中
只需要修改PHPMyAdmin文件夹中的单个文件即“config.inc.php”。只需在“config.inc.php”中添加下面的行。
文件位置: /var/lib/phpmyadmin/config.inc.php
或/etc/phpmyadmin/config.inc.php
也许你没有编辑该文件的权限,只需使用此命令给予权限即可
sudo chmod 777 /var/lib/phpmyadmin/config.inc.php
或者(在不同的系统中,您可能需要检查这两个位置)
sudo chmod 777 /etc/phpmyadmin/config.inc.php
然后将代码复制并粘贴到config.inc.php
文件中
$i++; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['verbose'] = 'Database Server 2'; $cfg['Servers'][$i]['host'] = '34.12.123.31'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;
并对服务器的详细信息进行适当的更改