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

所以,我刚刚创build了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它,也没有任何作品。 什么都没发生。

我需要更改一些设置吗?

默认情况下,RDS不允许任何未在安全组(SG)中指定的连接。 您可以根据CIDR地址或亚马逊账号来允许该账号下的任何EC2访问。

由于您尚未将防火墙configuration为接受来自您的其他实例的mySQL连接,因此该数据包正在防火墙级别上丢弃,因此您需要:

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

注意,服务器的源IP不会是你的弹性IP(在大多数情况下),你将有一个内部IP设备(Linux上的ifconfig会告诉你这一点)。

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

  • 相关子网看起来是否configuration正确?
  • 子网是否似乎正确configuration的路由组(Internet Gateway指定等)?
  • RDS是否可以公开访问?
  • 当然还要检查RDS安全组和EC2安全组
    • 不要忘了你的实际来源IP可能是一个内部IP(如果通过VPC内部访问的话)或者外部IP(可能是一个路由器的IP,或者是一个EC2实例的与负载平衡器/弹性IP不同的实例IP) – 要排除故障,您可以尝试访问所有的IP和端口。

(路由组是我的问题;在创build一个新的子网时,我忽略了将它添加到带有网关的路由组中。)

固定。

必须在DB下的安全组中授予访问权限…

我遇到过同样的问题 ;

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

为我工作…

为了在locking访问权限之前完全打开安全性进行testing,我的数据库实例和EC2实例使用相同的安全组,并且将入站和出站端口3306configuration为允许来自任意位置的连接。 这个问题 – 我能够从我的笔记本上连接到Aurora,但是从我的EC2实例来看却不可思议,就好像EC2实例不在任何位置。 解决scheme是添加另一个入站mysql / Aurora规则,并指定入站连接的源相同的安全组ID 。 我的安全组有一个引用自己的规则,可以从我的笔记本或EC2实例进行连接。

mysql入站规则应该如下所示

图片 这是安全组的问题。