rds连接 - 使用MySQL Workbench通过EC2实例连接到Amazon RDS实例




aws rds连接 (4)

在AWS中,我设置了一个带有堡垒主机的VPC。 堡垒主机是一个具有公共地址槽的EC2实例,您可以通过该SSH连接到VPC上的任何其他服务器。

我在VPC中创建了一个RDS MySQL实例,我想使用MySQL workbench连接到它。 我已按照here详述的步骤操作,但在“步骤6:设置远程SSH配置”中,它要求我“提供Amazon EC2实例的公共DNS”(即堡垒主机)。

然后,MySQL工作台会检查该服务器上的某些MySQL资源。 但是,这在我看来是不正确的,因为我提供了堡垒主机的地址,它没有安装MySQL。 结果,最后两次检查“检查启动/停止命令的位置”和“检查MySQL配置文件”然后失败。

然后我尝试使用RDS MySQL实例的端点地址,但没有成功(因为它在私有子网中,因此不能公开寻址)。

似乎很多人已经开始运行,但我在这里做错了什么?


几周以来,我一直在努力寻找类似的东西。 几分钟前就搞清楚了。

  1. 在mysql workbench中,创建一个新的服务器实例。
  2. 对于远程主机地址,请输入您的端点地址(即xxxxxx.us-east-1.rds.amazonaws.com)
  3. 对于连接方法,选择“SSH上的标准TCP / IP”
  4. SSH主机名是EC2实例的公共DNS
  5. 我指定了ec2-user(我认为它因EC2 Instance类型而异)作为用户名,然后指定了与实例正在使用的密钥对相对应的下载密钥文件。
  6. mysql主机名是RDS实例的端点。
  7. 用户名是RDS实例的用户名(即ebroot)

使用它我能够连接。 但是,我没有在我的设置中使用VPC。 希望这可以帮助。 祝你好运!


如果您想真正使用AWS的VPC连接而不允许公共IP,请执行以下操作。

如果您有一个分配了EC2和RDS的安全组,则在TCP上为mysql 3306添加入站规则但在源字段中不要放置IP或子网,而是放置实际的安全组ID。 即sg-9829f3d2。

我个人在VPC上有两个安全组。

第一个安全组1由EC2实例使用,仅允许EC2所需的端口,即80和22。

第二个安全组2仅由RDS实例使用,并且具有允许mysql(3302)的一个规则,并且源字段被设置为安全组1的id。

所有Mysql工作台SSH隧道都可以与两个安全组一起使用。


我建议使用SSH隧道:

  1. 创建puttion会话到堡垒主机
  2. 在Connection - > SSH - > Tunnels下,指定Source端口:3306,Destination:yourRDSendpointname:3306
  3. 别忘了点击添加!
  4. 使用这些设置连接到堡垒主机
  5. 在MySQL工作台中添加一个新连接并将其指向您的localhost端口3306(假设您没有在本地客户端计算机上的3306上运行任何内容)
  6. 输入您的RDS实例的用户名和密码

由于您使用的是VPC,因此应该如何配置它以便仅接受来自子网的连接:

  1. 选择数据库实例使用的VPC安全组
  2. 添加新规则以允许来自您的私有子网的所有ips在端口3306上

    例如:规则INBOUND 3306(MYSQL)172.33.11.0/24

  3. 使用mysql workbench tcp / ssh它会工作(按照AndrewSmiley的回答)。







amazon-vpc