为什么我不能直接连接到我的MySQL RDS数据库实例? (我只能通过SSH连接到EC2)

时间:2014-06-20 16:24:12

标签: mysql amazon-web-services amazon-rds

我创建了一个MySQL RDS数据库实例,我确保实例位于一个安全组内,该安全组应允许我从外部连接到它。安全组允许来自所有IP地址的所有类型的流量。 RDS与我制作的EC2属于同一安全组。

我可以通过SSH连接到EC2连接到数据库实例,然后使用我在EC2上安装的mysql CLI客户端连接到RDS。但是,我无法从个人计算机上的MySQL客户端直接连接到RDS。我使用相同的主机和用户名以及所有RDS,但绕过EC2不起作用。

从谷歌搜索,似乎我得到的错误通常是由RDS的安全组不允许来自我的计算机的流量引起的 - 但事实并非如此,因为我三次检查安全组是否打开对所有公共交通。哎呀,RDS和EC2属于同一个安全组,我可以连接到EC2。

那是怎么回事?

3 个答案:

答案 0 :(得分:3)

这就是为我解决问题的原因。在RDS仪表板上,查看实例的安全组。单击此按钮将转到安全组页面。

虽然它会为入站和出站点击“所有流量”点击编辑并确保源显示我的IP。我不建议使用所有IP,因为这会打开互联网上的任何人。如果您没有静态IP,请确保在连接停止工作后刷新此字段。

在此之后,我能够连接到AWS RDS T2实例。

答案 1 :(得分:0)

有时当我尝试连接到VPC内部的东西时,DNS会让人觉得奇怪。但是因为你在VPC内,你只有一个私人IP地址。如果您想在计算机和RDS之间建立直接连接,我不会使用VPC,这只会增加问题。如果它确实需要在VPC中,我就像你已经拥有的那样在我的vpc中启动一个ec2实例。然后我通过运行此命令将RDS实例隧道传输到ec2实例

screen
ssh -L ec2-instanceDNS.com:3308:rds-dns.com:3308

分离屏幕

Ctrl+A
D

答案 2 :(得分:0)

检查您的个人计算机所在网络上的防火墙中打开的传出端口。即使RDS实例允许所有流量,您的防火墙也可能阻止您建立连接。您可以使用http://portquiz.net/来测试您的网络是否允许您连接到数据库的端口上的流量。使用MySQL,端口很可能是3306;如果您使用数据库的端口无法通过网络访问,请找到一个端口,该端口使用我刚刚链接的端口测验工具,然后使用该端口重新创建数据库实例。 (RDS不允许您更改现有实例上的端口。)