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


134

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


1
您还可以在phpmyadmin本地安装docker映像并连接到远程MySQL服务器。更多详细信息,请点击这里docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin

Answers:


175

只需在/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

。您将看到“当前服务器:”下拉列表,同时显示“ 127.0.0.1”和服务器之间的“ $ cfg ['Servers'] [$ i] ['host']”凸轮开关。

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


16
$i++一点很重要,因为这不会使我们失去默认的数据库连接localhost
Gaurav Ramanan 2014年

我也只好跟着中的步骤这个职位设置它在phpMyAdmin,使其工作后。
艾哈迈德·阿赫塔尔

2
/etc/phpmyadmin/config.inc.php是要更改的正确文件
Xiao

上面的方法是绝对正确的,但是为什么大家都没有告诉我,我必须添加或获取它才能在Remote mySql中添加我的IP地址。否则它将无法正常工作。请朋友也注意这一点
Jaydeep Goswami

如果有人在Apple系统上工作,则该config.inc.php文件位于 Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.phpfile上。
Anirudha Mahale

23

正如其他答案所指出的那样,当然可以从phpMyAdmin的本地实例访问远程MySQL服务器。为此,您必须将远程服务器的MySQL服务器配置为接受远程连接,并允许防火墙通过MySQL正在侦听的端口号的通信。我更喜欢涉及SSH隧道的稍微不同的解决方案。

以下命令将设置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++;

如果您需要其他帮助,我就此发表了一篇更深入的博客文章


1
我认为这是安全的解决方案。如果不是绝对必要的,打开mySQL进行直接远程访问通常被认为是不良的安全做法。
Omn 2014年

1
c.hill的答案不太正确。请注意:绑定地址必须设置为mysql my.cnf文件中的回送地址。

无需在远程主机上成为root用户。桥梁工作正常,谢谢!我对配置不是很确定,但是更喜欢Suresh Kamrushi的答案。$++至少对于我的默认phpmyadmin.conf来说,应该绝对是第一行,而不是最后一行。
frnhr

我只是遇到需要更改$ cfg ['Servers'] [$ i] ['auth_type'] ='config'的情况;//将其保存为$ cfg ['Servers'] [$ i] ['auth_type'] ='cookie';的配置 //将其保留为配置。因此,感谢您的提示!
Phil Lawlor

最好的解决方案!
Ghasem Sadeghi

23

可以完成,但是您需要更改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端口。通常这是3306
  • 找到$cfg['Servers'][$i]['user']$cfg['Servers'][$i]['password']变量,并将其设置为远程服务器的用户名和密码

如果没有正确的服务器配置,则连接可能比本地连接慢,例如,使用IP地址代替主机名可能会稍快一些,以避免服务器不得不从主机名中查找IP地址。

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


3
您还需要使数据库实例上的防火墙允许通信,并且数据库服务器上的用户具有远程访问权限。
ceejayoz

我可以在这里问一个问题吗?作为我的新手,我很好奇我应该在浏览器中输入哪种链接,以便通过安装在自己托管网站的客户端服务器上的phpMyAdmin访问数据库。
加拉瓦尼

11

关注此博客文章。您可以轻松完成。 https://wadsa​​shika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/

文件config.inc.php包含phpMyAdmin安装的配置设置。它使用一个数组存储它可以连接到的每台服务器的配置选项集,默认情况下只有一台您自己的计算机或本地主机。为了连接到另一台服务器,您必须向配置阵列添加另一组配置选项。您必须编辑此配置文件。

首先打开phpMyAdmin文件夹中保存的config.inc.php文件。在wamp服务器中,可以在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主页将更改,并且将显示一个字段以选择服务器。

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


1
请更准确,并详细说明您的答案。链接答案很好,但如果链接由于任何原因损坏则可能无法访问。
Milad Faridnia

9

如答案c.hill答案中所述,如果您需要安全的解决方案,建议您打开通往服务器的SSH隧道。

这是针对Windows用户的方法:

  1. Putty网站下载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是您要重定向到的本地端口
  • 本地主机是远程服务器上MySQL数据库的地址(默认情况下为本地主机)
  • 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文件中)即可。


6

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

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

5

本来可以将此添加为评论,但是我的声誉还不够高。

在版本4.5.4.1deb2ubuntu2下,我猜在其他任何版本4.5.x或更高版本中。根本不需要修改config.inc.php文件。而是在conf.d下再走一个目录。

创建一个扩展名为'.php'的新文件并添加代码行。这是一种更好的模块化方法,可以隔离每个远程数据库服务器访问信息。


2

转到最底部的\ phpMyAdmin \ config.inc.php文件,更改主机详细信息,例如主机,用户名,密码等。


2

在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;

并根据您的服务器详细信息进行适当的更改


1

方法1(对于多服务器)

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

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

现在在/ usr / share / doc / phpmyadmin / examples /中,您将看到一个文件config.manyhosts.inc.php。只需 使用以下命令复制到/ etc / phpmyadmin /中

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)


1

当我测试它找到文件config.default.php

然后找到 $ cfg ['AllowArbitraryServer'] = false;

然后将其设置为true

注意:在ubuntu上,路径/usr/share/phpmyadmin/libraries/config.default.php中的文件

那么您将在PHPMyAdmin主页上找到一个新的文件名SERVER,您可以在其中添加本地数据库的任何IP或本地主机。


0

在安装了Wamp Server的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'] = '';

-1

删除的完整条目 /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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.