使用MySQL Workbench通过EC2实例连接Amazon RDS实例
在AWS中,我用堡垒主机设置了一个VPC。bastion主机是一个带有公共地址的单个EC2实例,您可以通过该实例SSH连接到VPC上的任何其他服务器 我已经在VPC中创建了一个RDS MySQL实例,我想使用MySQL workbench连接到它。我已经遵循了详细的步骤,但是在“步骤6:设置远程SSH配置”中,它要求我“提供Amazon EC2实例(即bastion主机)的公共DNS” MySQL workbench然后检查该服务器上的某些MySQL资源。但是,我认为这是不正确的,因为我提供了bastion主机的地址,该地址没有安装MySQL。结果,最后两次检查“检查启动/停止命令的位置”和“检查MySQL配置文件”失败 然后,我尝试使用RDS MySQL实例的端点地址,但没有成功(因为它位于私有子网中,因此不可公开寻址)使用MySQL Workbench通过EC2实例连接Amazon RDS实例,mysql,amazon-web-services,ssh,amazon-rds,amazon-vpc,Mysql,Amazon Web Services,Ssh,Amazon Rds,Amazon Vpc,在AWS中,我用堡垒主机设置了一个VPC。bastion主机是一个带有公共地址的单个EC2实例,您可以通过该实例SSH连接到VPC上的任何其他服务器 我已经在VPC中创建了一个RDS MySQL实例,我想使用MySQL workbench连接到它。我已经遵循了详细的步骤,但是在“步骤6:设置远程SSH配置”中,它要求我“提供Amazon EC2实例(即bastion主机)的公共DNS” MySQL workbench然后检查该服务器上的某些MySQL资源。但是,我认为这是不正确的,因为我提供了b
似乎很多人都已经开始运行了,但我做错了什么呢?我已经为类似的事情挣扎了好几个星期了。几分钟前我就想出来了
用这个我就可以连接了。但是,我没有在设置中使用VPC。希望这有帮助。祝你好运 我建议使用SSH隧道:
这就是我解决问题的原因。在RDS仪表板上,查看您实例的安全组。单击此按钮,您将进入安全组页面 尽管入站和出站都会显示“所有流量”,但请单击编辑并确保消息来源显示我的IP。我不建议使用所有的IP,因为这会对互联网上的任何人开放。如果没有静态IP,请确保在连接停止工作后刷新此字段
在此之后,我能够连接到AWS RDS T2实例。如果您想真正使用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 workbench SSH隧道也与这两个安全组一起工作。您可以在Bastion主机(EC2实例)中创建SSH隧道,将端口从本地机器转发到远程RDS实例 在mac/linux上,这是命令(对于windows,请按照下面链接中的说明进行操作): 然后,您可以使用以下设置连接workbench:
- 连接方式:标准TCP
- 主机名:localhost
- 端口3306
mysql -u{username} -p{password} -h ***-db-***.cmmaberpdqoc.***.rds.amazonaws.com -P 3306
用您的凭据替换{username}、{password}和host
按照图片进行操作,您应该能够连接
不幸的是(事实上很幸运)我不再需要处理这个问题,我也不想花钱在RDS上检查它。但如果有人能告诉我这是可行的,我会接受答案。谢谢你的回复@AndrewSmiley。你救了我一天!谢谢。你能解释一下如何获得这个吗
ips来自您的专用子网
nm,这是您在Andrew回答的步骤1
中创建的实例的专用IP使用我的ec2专用子网/32不起作用,但我的ec2专用子网/24起作用。我没有在文档中看到这一点,但我对这一点是新手。谢谢
mysql -u{username} -p{password} -h ***-db-***.cmmaberpdqoc.***.rds.amazonaws.com -P 3306