【问题标题】:How to connect MySQL database through two SSH hosts如何通过两台 SSH 主机连接 MySQL 数据库
【发布时间】:2012-04-18 21:23:47
【问题描述】:

如何通过两台 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 主机如上所示进行隧道连接,我该如何连接?

【问题讨论】:

    标签: mysql ssh


    【解决方案1】:

    我认为这会有所帮助。从 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
    

    【讨论】:

      【解决方案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 所述。

      【讨论】:

        【解决方案3】:

        我使用 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

        Putty 配置截图如下。

        【讨论】:

          猜你喜欢
          • 2020-02-10
          • 1970-01-01
          • 2013-08-06
          • 2014-09-17
          • 1970-01-01
          • 2011-02-17
          • 1970-01-01
          • 2019-05-21
          • 1970-01-01
          相关资源
          最近更新 更多