【问题标题】:Connecting to Remote MySQL DB over ssh with workbench使用工作台通过 ssh 连接到远程 MySQL 数据库
【发布时间】:2021-06-07 20:04:54
【问题描述】:

我正在尝试通过 SSH 使用 MySQL Workbench 连接到远程数据库。我尝试连接的远程数据库具有受私钥保护的防火墙(我已将其隐藏为 OPEN SHH)。当我尝试连接时,我不断收到错误消息,我只是对我应该使用的数据库信息有点困惑。我一直看到人们在不同的问题中使用 localhost 和 DB 在同一点间断地更改。我目前的设置是我必须连接到防火墙的服务器(检查)现在有多个正在运行的虚拟机我希望连接到例如192.1.91.0。我还在 localhost 5000 上的 putty 上设置了一个端口(我不知道这是否相关)。当我尝试使用 192.1.91.0 端口 3306 或 localhost 5000 连接时。我得到了同样的错误。任何人都可以帮忙。附上我放入workbench的信息图片

【问题讨论】:

    标签: mysql ssh mysql-workbench putty


    【解决方案1】:

    我认为这里有一些误解。防火墙不受密钥对保护。 SSH 连接是。防火墙仅使用特定规则过滤网络流量(例如,仅让它通过启用的网络端口)。当您使用 SSH 连接时,您必须使用从远程 SSH 连接端看到的 MySQL 地址。这意味着如果 MySQL 服务器与 SSH 服务器(使用 SSH 隧道时连接到的机器)在同一台机器上运行,那么地址是 localhost(或 IPv4/IPv6 环回地址)。有关详细信息,请在 Youtube 上观看我关于 connection creation and troubleshooting 的视频。

    【讨论】:

    • 感谢您的教程非常好,但我仍然无法理解一些事情。目前,如果我将 putty 与我的公钥/私钥身份验证一起使用,我将被带到@86.12343.11,然后我使用 ssh user@192.134.3.21。然后我使用mysql -user -pword 连接到mysql DB。对于 SSH HOSTNAME,我假设我使用 86.12343.11,但是如何指定我想要连接的服务器 (192.134.3.21)?
    • 听起来像是双跳。您首先有一个到 86.x.x.x 的 SSH 连接,然后再从那里连接到 192.x.x.x。然后从那里连接到另一台机器上的 MySQL 服务器?恐怕WB不直接支持这种双跳。它创建一个 SSH 隧道并期望从该远程端到达 MySQL 服务器。您可以尝试使用腻子创建一个到第一个 SSH 端点的隧道,然后配置 WB 以便就好像它在该端点上一样,但我从未尝试过,所以我不知道它是否可以这样工作。
    • 没有mysql服务器在192.x.x.x
    • Mysql Server 位于VM 192.x.x.x
    【解决方案2】:

    要将工作台与私有数据库连接,您需要一个“跳转主机”,也称为“堡垒主机”,它可以是与数据库相同的 VPC 中公共子网中的任何 EC2 实例。

    按照以下步骤操作:

    1. 打开附加到数据库的安全组,并添加新规则如下:-

    类型:MYSQL/Aurora,协议:TCP,端口范围:3306,
    来源:securitygroupofEC2(您可以通过输入所有安全组 'sg-')

    1. 打开附加在EC2上的安全组,并打开22端口。如果没有,请添加如下新规则:-

    类型:SSH,协议:TCP,端口范围:22,来源:MY IP

    1. 打开工作台,点击新建连接
    - Standard TCP/IP over SSH
     - SSH Hostname : < your EC2 Public IP >  #34.3.3.1
     - SSH Username : < your username > #common ones are : ubuntu, ec2-user, admin
     - SSH KeyFile: < attach your EC2 .pem file>
    
     - MYSQL Hostname: <database endpoint name> #mydb.tbgvsblc6.eu-west-1.rds.amazonaws.com
    
     - MYSQL Port: 3306
     - Username : <database username>
     - Password: <database password>
    

    单击“测试连接”并完成!

    【讨论】:

      【解决方案3】:

      如果 MySQL 服务器配置为接受远程连接,您可以使用服务器 IP 地址,但不需要通过 ssh 连接。一旦您选择通过 ssh 连接,工作台就会使用 ssh 凭据创建一个端口转发到指定的服务器。所以你必须使用 localhost 作为 MySQL 主机名。由于端口转发,请求将被转发到您的远程计算机。简而言之:据我了解您的问题,您必须使用 localhost。

      【讨论】:

        猜你喜欢
        • 2010-12-30
        • 2020-07-07
        • 2016-05-24
        • 2019-08-05
        • 2016-10-29
        • 1970-01-01
        • 2016-10-25
        • 1970-01-01
        相关资源
        最近更新 更多