设置后为什么无法连接到Amazon RDS?


43

因此,我刚刚创建了Amazon RDS帐户。然后我启动了一个数据库实例。

The "endpoint" is:
abcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

大!现在,我尝试从其他EC2实例之一连接到它。

mysql -uUSER -pPASS -habcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

但是没有任何效果,它只是挂起。

我试图对其进行ping操作,但也无济于事。什么都没发生。

我需要更改一些设置吗?

Answers:


45

默认情况下,RDS不允许在安全组(SG)中未指定的任何连接。您可以基于CIDR寻址或通过Amazon帐号允许,这将允许该帐户下的任何EC2访问它。


27

由于您没有将防火墙配置为接受来自其他实例的mySQL连接,因此该消息正在“挂起”,因此,要在防火墙级别丢弃数据包以解决此问题,您需要:

  1. 进入您的AWS控制台
  2. EC2标签
  3. 记下您的mySQL服务器的安全组(现在将其称为SG-MYSQL)
  4. 单击控制台左侧的安全组
  5. 在中心菜单SG-MYSQL中单击您的组
  6. 单击入站选项卡
  7. 从列表中选择mySQL,添加客户端服务器的详细信息并保存规则

注意服务器的源IP不会是您的弹性IP(无论如何在大多数情况下),您将在设备上有一个内部IP(Linux上的ifconfig会显示此信息)。


1
我已经在我的EC2服务器上做到了。我已经打开了所有标准端口。
亚历克斯(Alex)

1
我没有EC2实例,并且直到执行此操作,我的RDS才能连接到外部世界。
Umair A.

1
使用弹性IP的极好点!
user1641443

1
谢谢你 演练使一切都变了!
T先生

1
在服务器出现故障时创建了一个帐户,仅用于对此进行投票。谢谢。
CaptainMarvel

7

这里有很多关于安全组的讨论,但也要检查:

  • 关联子网是否配置正确?
  • 子网是否正确配置了路由组的一部分(已指定Internet网关等?)
  • RDS是否说它是公共可访问的?
  • 当然,请检查RDS安全组和EC2安全组
    • 不要忘记您的实际源IP可能是内部IP(如果通过VPC在内部访问)或外部IP(可能是路由器的IP或与负载均衡器/弹性IP不同的EC2实例的实例IP) -要进行故障排除,您可以尝试允许访问所有IP和端口。

(路由组是我的问题;在创建新子网时,我忽略了将其添加到具有网关的路由组中。)


需要说明的是:在RDS子网组中选择的所有子网都应具有指定了Internet网关的路由表。我的问题是,我选择的两个子网是我的“专用”子网,该子网具有为出站流量而不是Internet网关指定的NAT网关,RDS恰好在那些子网中选择一个服务器。如果您不太熟悉路由,请参阅此文章:medium.com/@mda590/aws-routing-101-67879d23014d
timetofly

我受到与@timetofly相同的问题的影响。我曾经做过一项一次性工作,因此决定在ECS Fargate上运行,该工作需要NAT才能下载文件。设置NAT中断了我从笔记本电脑与RDS的连接。作业完成后,我将子网更新为仅使用Internet网关,因此一切顺利。
vitale232

4

固定。

必须在数据库下的安全组中授予对它的访问权限...


6
您能否详细说明授予访问权限的方法?
David Csonka,2012年

1
我的数据库有一个带有一个规则的安全组。允许从任何地方访问端口1433。我无法连接-_-
Muffin Man

1

我遇到过同样的问题 ;

  1. 安全组> rds-launch-wizard(或为数据库SG选择的任何名称)
  2. 选择入站选项卡>编辑
  3. 添加新角色
  4. 的MySQL
  5. 源->插入aws vm ip(例如:12.3.14.80/32)

为我工作...


1

为了在锁定访问之前完全开放安全性以进行测试,我的数据库实例和EC2实例都使用了相同的安全组,并且入站和出站端口3306都配置为允许来自任何地方的连接。问题-我能够从笔记本电脑连接到Aurora,但奇怪的是没有从我的EC2实例连接,好像EC2实例不在任何地方。解决方案是添加另一个入站mysql / Aurora规则,并指定相同的安全组ID作为入站连接的源。我的安全组有一个引用自己的规则,我可以从我的笔记本电脑或EC2实例进行连接。


-3

mysql入站规则应如下所示

图片 这是安全组的问题。


3
您是否有理由挑战一个已有五年历史的问题,以使用已经存在多年的相同答案来回答它?给予0.0.0.0/0访问3306是不是一个好主意,无论是。
ceejayoz

我试图向用户展示他们应该更改什么以及如何更改,您知道有很多像我这样的用户无法通过阅读上述答案解决问题。它可能无济于事,但有些用户正在寻找它。您投了反对票,因为它无济于事。
尼尔玛·达拉

3
我的不满来自于说人们应该向整个互联网开放MySQL。这是一种危险的方法。
ceejayoz '16

我知道了。我只是显示他们可以编辑安全组的位置,他们可以从下拉菜单中进行选择。
尼尔马尔·达拉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.