SSH隧道通过PhpMyAdmin

时间:2013-04-02 20:27:35

标签: php ssh nginx phpmyadmin

我知道这是一个重复的问题,但我尝试了很多资源,但没有一个能为我工作。我的公司有一个我用SSH连接的亚马逊Bastian服务器。从那里,我可以SSH到各种IP地址来管理数据库。我希望这些数据库在phpmyadmin中可用。就我而言:

  1. 通过putty SSH进入主Amazon服务器。使用端口3307的隧道,当我访问localhost:3307时,我收到一条消息“欢迎来到nginx!”。我认为这意味着我已经连接到亚马逊。

  2. 我在此尝试了其他主机配置说明:http://shallop.com/2011/04/howto-use-phpmyadmin-to-remote-admin-mysql-dbs-via-ssh-tunnel/

  3. 当我重新启动phpmyadmin并尝试我的新连接字符串时,它只是挂起。我在哪里错了?

1 个答案:

答案 0 :(得分:4)

你的问题中缺少一些信息,所以我会做一些假设:

  • 您正在本地网络服务器上运行phpmyadmin
  • 您想在此计算机上创建隧道以连接到只能通过您的Amazon Bastian Server访问的远程mysql服务器

那么它应该是你如何设置端口向前,因为你得到欢迎来到nginx!听起来你已经将端口3307转发到远程机器上的端口80了。

试试这个ssh命令:

$ ssh -N <username>@<Bastian server IP> -L 3307:<internal ip of mysql server>:3306
  • -N表示您不想执行任何命令(只是前进端口)
  • 3307是要转发的本地端口
  • 是Bastian服务器可用于连接MySQL服务器的IP
  • 3306是MySQL在远程计算机上运行的端口

现在在本地计算机上运行以下命令:

$ telnet localhost 3307

你应该看到你输出的mysql版本号,一些随机字符然后是mysql_native_password,然后连接就会关闭。

然后您应该能够将phpmyadmin配置为使用localhost和端口3307连接到远程服务器。