如何使用本地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://wadsa​​shika.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用户的方法:

  1. 从腻子网站下载Plink和Putty,并将文件放在您select的文件夹中(在我的示例C:\Putty

  2. 打开Windows控制台并cd到Plink文件夹: cd C:\Putty

  3. 打开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:

  1. 通过在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'; 
  1. 您现在应该可以连接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; 

并对服务器的详细信息进行适当的更改