使用工作台通过ssh连接到远程MySQL数据库

时间:2015-10-16 16:37:35

标签: mysql ssh mysql-workbench putty

我正在尝试通过SSH连接到MySQL Workbench的远程数据库。我正在尝试连接的远程数据库具有受私钥保护的防火墙(我已将其转换为OPEN SHH)。当我尝试连接时,我一直收到错误,我只是对我应该使用的数据库的信息有点困惑。我一直看到人们使用localhost,并且DB在不同问题的同一点上间歇性地改变了。我的设置目前是我必须连接到防火墙的服务器(检查),现在有多个运行的VM我想连接到例如192.1.91.0。我还在localhost 5000上设置了一个在putty上设置的端口(我不知道这是否相关)。当我尝试使用192.1.91.0端口3306或localhost 5000进行连接时,我得到了同样的错误。谁能帮忙。附件是我放入工作台enter image description here

的信息图片

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

按照以下步骤操作:

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

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

  1. 打开连接到EC2的安全组,并打开22端口。如果没有,请添加如下新规则:-
<块引用>

类型:SSH,协议:TCP,端口范围:22,来源:我的 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>

点击“测试连接”,大功告成!!

答案 2 :(得分:0)

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