如何通过两个SSH主机连接MySQL数据库

时间:2012-04-05 06:13:30

标签: mysql ssh

如何通过两个SSH主机连接MySQL数据库?

以下是我的情况:我有两个SSH主机,如下所示。 MySQL在BOX2主机上运行。

MyBox(MySQL GUI client) -----SSH(port 22)--->BOX1(IP: 190.xx.xx.xx)---SSH(port 22)--->BOX2(IP: 190.xx.xx.xx)[MySQL server]

我的问题是,如果我有多个SSH主机进行隧道连接,如何进行连接?

3 个答案:

答案 0 :(得分:4)

我认为这会有所帮助。从MyBox(拥有MySQL客户端)

尝试此命令
ssh user@box1 -L some-local-port:box2:22

现在从客户端尝试连接以这种方式连接

MySQL host : localhost
MySQL usernmae : mysql-username-of-server-installed-at-Box2
MySQL password : mysql-password-of-server-installed-at-Box2
MySQL port : 3306 (suppose mysql server at Box-2 is listening at port 3306)

在隧道信息中

SSH host : localhost
SSH pass : ssh-password-of-Box2
SSH port : some-local-port

答案 1 :(得分:2)

尝试以下方法:

ssh -L 33306:localhost:33306 user@box1_hostname ssh -L 33306:localhost:3306 user@box2_hostname

然后尝试使用127.0.0.1:33306连接到mysql。请注意,box1上的任何人都可以使用端口33306,这对您来说可能是也可能不是问题。

实现相同目标的另一种方法是使用ProxyCommand,如here所述。

答案 2 :(得分:0)

使用Putty客户端的替代解决方案如下所示。

  1. 首先在Putty应用程序上配置从MyBox端口3300到Box1端口3300的隧道。
  2. 将Putty连接到Box 1
  3. 键入以下命令以在Box1和Box2之间建立隧道 ssh -L 3300:localhost:3306 root @ Box2_IP
  4. 将Mysql客户端连接到localhost:3300
  5. Putty Config截图如下。 Puttuy Config Connect Screen

    Putty Tunnel Config Screen