【问题标题】:RDS unable to connect to local machineRDS 无法连接到本地机器
【发布时间】:2021-07-25 07:54:35
【问题描述】:

我为本地的 mysql 连接测试创建了简单的免费层 RDS 实例。我确定Public accessibilityyes 以此创建入站规则(来自任何地方的所有端口的所有流量)

> sgr-052bd15d02d6f0xxx –   All traffic All All sg-857778f1 
> sgr-085e08ad1f482xxxx IPv6    All traffic All All ::/0    for sqlyog

然后我运行以下命令

mysql -h database-1.czzsgxxxxxxx.us-east-2.rds.amazonaws.com -P 3306 -u admin -p 
(entered password)

但它没有连接并给出以下错误:

ERROR 2003 (HY000): Can't connect to MySQL server on 'database-1.czzsgzotg0i1.us-east-2.rds.amazonaws.com' (110)

现在我进行了很多研究,发现这个问题只能通过更改 db 的入站规则来解决,但在我的情况下它仍然无法正常工作(我也尝试了其他入站规则,但也没有用.

【问题讨论】:

  • 您是想从 Amazon EC2 实例还是从您自己的 Internet 计算机进行连接?
  • 来自我自己的电脑在互联网上@JohnRotenstein
  • 是无法立即连接,还是需要几秒才能显示错误信息?
  • 它需要一段时间然后显示错误
  • 在失败前花费 5+ 秒表示没有通信(通常是由不正确的安全组配置引起的),而不是由于密码错误而被拒绝。

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


【解决方案1】:

如果您想从 Internet 上自己的计算机连接到 Amazon RDS 实例,则安全组需要 入站规则

  • 端口:3306
  • 来源:你的 IP 地址

查看您当前的规则:

> sgr-052bd15d02d6f0xxx –       All traffic All All sg-857778f1 
> sgr-085e08ad1f482xxxx IPv6    All traffic All All ::/0    for sqlyog

第一行只接受来自安全组sg-857778f1 的传入连接。第二行用于 IPv6。

【讨论】:

  • 我尝试为我的 ip 更改我的规则,它默认向我推荐了一些 ip,当我使用该 ip 时它给出错误并且不允许我保存设置,错误如下:你可能没有指定现有 IPv6 CIDR 规则的 IPv4 CIDR。
  • 另外我认为是否有必要将其更改为我的 ip,因为我可以将其更改为任何 ip,以防我的 ip 被更改,我必须每次在规则中更改它
  • 您似乎正在编辑 IPv6 规则。如果这是您为 RDS 实例创建的 安全组,则删除所有规则并添加我在上面推荐的规则。如果这是 Default 安全组,那么我建议您不要更改它。相反,创建一个新的安全组,添加我推荐的入站规则,然后将这个新的安全组添加到 RDS 实例并删除现有的安全组。
  • 是的,如果您的 IP 地址发生变化,则需要更改规则。与将数据库打开到整个 Internet 相比,这为您提供了更多更好的安全性,这是一种糟糕的安全做法。但是,这是您的选择——如果您愿意冒险,可以将其打开至0.0.0.0/0
  • 我像你说的那样创建了一个新的安全组,并且成功了。
猜你喜欢
  • 2019-12-12
  • 2020-10-17
  • 1970-01-01
  • 2021-03-20
  • 2019-01-17
  • 2014-11-06
  • 1970-01-01
  • 2018-08-20
相关资源
最近更新 更多