如何使用本地 phpMyAdmin 客户端访问远程服务器?

假设有一个远程服务器,并且在我的计算机上本地安装了 phpMyAdmin 客户端。我如何访问这个服务器并通过 phpMyAdmin 客户端管理它?这可能吗?

348752 次浏览

这是可以做到的,但是您需要更改 phpMyAdmin 配置,请阅读本文: Http://www.danielmois.com/article/manage_remote_databases_from_localhost_with_phpmyadmin

如果链接因任何原因而终止,您可以使用以下步骤:

  • 查找 phpMyAdmin 的配置文件 config.inc.php
  • 找到 $cfg['Servers'][$i]['host']变量,并将其设置为远程服务器的 IP 或主机名
  • 找到 $cfg['Servers'][$i]['port']变量,并将其设置为远程 mysql 端口
  • 找到 $cfg['Servers'][$i]['user']$cfg['Servers'][$i]['password']变量,并将它们设置为远程服务器的用户名和密码

如果没有适当的服务器配置,连接可能会比本地连接慢,例如,使用 IP 地址而不是主机名可能会稍微快一些,以避免服务器不得不从主机名查找 IP 地址。

此外,请记住,当您像这样连接时,远程数据库的用户名和密码以纯文本形式存储,因此您应该采取步骤确保没有人可以访问这个配置文件。或者,您可以将用户名和密码变量保留为空,以便在每次登录时提示输入它们,这样会安全得多。

您可以在 phpMyAdmin 安装的 config.inc.php 文件中进行设置。

$cfg['Servers'][$i]['host'] = '';

只需在底部的 /etc/phpmyadmin/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

你会得到 Current Server:下拉与两个 127.0.0.1和一个你已经提供了与 $cfg['Servers'][$i]['host']可以切换之间的服务器。

更多详情: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/

正如其他答案所指出的,从 phpMyAdmin 的本地实例访问远程 MySQL 服务器当然是可能的。为此,您必须使用 配置远程服务器的 MySQL 服务器以接受远程连接,并允许通过防火墙传输 MySQL 正在监听的端口号。我更喜欢略有不同的解决方案涉及 隧道工程

下面的命令将设置一个 SSH 隧道,它将把对端口3307发出的所有请求从本地计算机转发到远程计算机上的端口3306:

ssh -NL 3307:localhost:3306 root@REMOTE_HOST

当出现提示时,您应该在远程计算机上输入 root 用户的密码。这会打开隧道。如果想在后台运行它,需要添加 -f参数,并在本地计算机和远程计算机之间设置 无密码 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 安装的配置设置。它使用一个数组来存储它可以连接到的每个服务器的配置选项集,默认情况下只有一个服务器、您自己的计算机或本地主机。为了连接到另一台服务器,您必须向配置数组中添加另一组配置选项。您必须编辑此配置文件。

首先打开保存在 PhpMyAdmin文件夹中的 Config.inc.php文件。在 湿地服务器中,您可以在 Wamp apps phpmyadmin文件夹中找到它。然后将以下部分添加到该文件中。

$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';

让我们看看这个变量的意义是什么。

$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

添加此配置部分后,重新启动服务器,现在 phpMyAdmin 主页将发生更改,并显示一个字段来选择服务器。

现在可以选择服务器并通过输入该数据库的用户名和密码访问远程数据库。

正如在回答 C.hill的答案,如果你想要一个 安全解决方案,我会建议打开一个 SSH 隧道到您的服务器。

以下是为 窗户用户提供的方法:

  1. 油灰网站下载 Plink 和 Putty,并将文件放在您选择的文件夹中(在我的示例 C:\Putty中)

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

  3. 打开 SSH 隧道,转向3307端口:

    plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk

地点:

  • 3307是要重定向到的本地端口
  • Localhost 是远程服务器上 MySQLDB 的地址(默认情况下为 localhost)
  • 3306是远程服务器上 PhpMyAdmin 的端口使用(默认情况下为3306)

最后,您可以设置 PhpMyAdmin:

  1. 通过在 Config.inc.php末尾添加以下代码行,将远程服务器添加到本地 PhpMyAdmin 配置中

要添加的行:

$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连接

如果您不想在每次需要连接到远程服务器时都打开控制台,那么只需创建一个批处理文件(通过将2个命令行保存在。Bat 档案)。

在 Ubuntu 里

只需要修改 PHPMyAdmin 文件夹中的一个文件,即“ config.inc.php”。

文件位置: /var/lib/phpmyadmin/config.inc.php/etc/phpmyadmin/config.inc.php

也许您没有编辑该文件的权限,只需使用下面的命令授予该权限

sudo chmod 777 /var/lib/phpmyadmin/config.inc.php

OR (在不同的系统中,您可能需要检查这两个位置)

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;

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

转到最底部的 phpMyAdmin config.inc.php 文件,更改主机、用户名、密码等托管细节。

我本想加上这个作为评论,但我的声誉还不够高。

在版本4.5.4.1 de2ubuntu2下,我猜测任何其他版本的4.5.x 或更新版本。根本不需要修改 config.inc.php 文件。取而代之的是,在 cond.d 中再下一个目录。

类创建一个新文件。然后添加这些行。这是一种更好的模块化方法,可以隔离每个远程数据库服务器访问信息。

删除 /etc/http/conf.d/phpMyAdmin.conf的完整条目

在上面的文件下面的全部,

<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8


<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
#ADD following line:
Require all granted
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
#CHANGE following 2 lines:
Order Allow,Deny
Allow from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

然后,

在 MySQL 提示符下运行命令,

GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'

GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'

参考资料: 允许 IP 访问安全的 PhpMyAdmin

方法1 (对于多服务器)

首先,让我们对原始配置进行备份。

sudo cp /etc/phpmyadmin/config.inc.php      ~/

现在在 /usr/share/doc/phpmyadmin/example/中,您将看到一个文件 Config.manyhosts.inc.php 使用以下命令:

sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
/etc/phpmyadmin/config.inc.php

编辑 Config.inc.php

sudo nano /etc/phpmyadmin/config.inc.php

搜寻:

$hosts = array (
"foo.example.com",
"bar.example.com",
"baz.example.com",
"quux.example.com",
);

并添加您的 ip 或主机名数组保存(在 nano CTRL + X 按 Y)和退出。完成

方法2 (单服务器) 编辑 Config.inc.php

sudo nano /etc/phpmyadmin/config.inc.php

搜寻:

/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['host'] = $dbserver;


if (!empty($dbport) || $dbserver != 'localhost') {
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['port'] = $dbport;
}

取而代之的是:

$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';

记住用您自己的 mysql ip 服务器替换 192.168.1.100

对不起,我的英语不好(谷歌翻译有责任: D)

在安装了 Wamp 服务器的 Windows 中,您可以找到配置文件

C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php

更改适当的底线

$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = 3306;//$wampConf['mysqlPortUsed'];
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';

定位文件 程序库/config.default.php

然后找到 $cfg [‘ Allow仲裁服务器’] = false;

然后设置为 没错

注:

在 ubuntu 上路径 /usr/share/phpmyadmin/library/config.default.php中的文件

然后在 PHPMyAdmin 主页中找到一个新的文件名 SERVER,可以为本地数据库添加任何 IP 或本地主机。