使用 workbench 通过 ssh 连接到远程 MySQL 数据库

Connecting to Remote MySQL DB over ssh with workbench

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

的信息图片

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

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

要将 workbench 连接到私有数据库,您将需要一个 'jump host' 也称为 'bastion host',它可以是与相同 VPC 中的 public 子网中的任何 EC2 实例数据库。

按照以下步骤操作:

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

Type:MYSQL/Aurora, Protocol:TCP, PortRange:3306,
Source:securitygroupofEC2 (you can all security group by entering 'sg-')

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

Type:SSH, Protocol:TCP, PortRange:22, Source:MY IP

  1. 打开Workbench,点击新建连接
- 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>

点击 'test connection' 大功告成!!