AWS:无法从我的计算机连接到RDS数据库

Ami*_*ini 27 mysql database django amazon-web-services amazon-rds

EC2实例/实时Web可以很好地连接到RDS数据库.但是,当我想调试本地机器中的代码时,我无法连接到数据库并出现此错误:

OperationalError:(2003,"无法连接到MySQL服务器'aa9jliuygesv4w.c03i1 ck3o0us.us-east-1.rds.amazonaws.com'(10060)")

我已经添加.pem.ppk钥匙.ssh,我已经配置EB CLI.我不知道该怎么办.

仅供参考:该应用程序位于Django中

Ami*_*ini 98

事实证明它并不那么难.执行以下步骤:

  1. 转到EC2仪表板
  2. 转到"安全组"选项卡
  3. 选择并仅选择RDS数据库安全组.您将在底部看到安全组详细信息
  4. 单击"入站"选项卡
  5. 单击编辑按钮
  6. 添加类型:MYSQL/Aurora;协议:TCP;范围:3306;来源:0.0.0.0/0

脚步

  • 将MySQL实例打开到0.0.0.0/0(每个人?)都存在安全隐患? (14认同)
  • 如果您在测试数据库上进行调试,那么@kafka会很好,否则您可能希望将IP范围限制为可信IP(例如,贵公司的IP).在这种情况下,您将写入XXXX/32,仅允许一个IP地址.附注:Amazon RDS向导似乎在创建数据库安全组时将规则设置为"当前IP".当我回到家时,我意识到这一点,我在办公室玩的测试数据库连接停止工作. (3认同)

Ant*_*y R 27

确保PUBLIC ACCESSIBILITY设置为是

这就是我过去三天试图解决的问题...

  • 然后,可以使用Web服务器的IP和开发人员访问ips添加一个安全组。 (2认同)

Cal*_*tes 9

接受来自任何 IP 地址的流量

创建 RDS 实例后,我的安全组入站规则设置为特定 IP 地址。我必须编辑入站规则以允许从任何 IP 地址进行访问。

  • 《安全组规则》
  • 选择安全组
  • 点击“入站规则”
  • 点击“编辑入站规则”
  • 在“来源”下选择下拉菜单并单击“任何地方”
  • ::0 或 0.0.0.0/0 应该出现。
  • 点击“保存规则”


Sla*_* II 7

确保您的 VPC 和子网足够宽。

以下 CIDR 配置适用于两个子网:

  • 专有网络 10.0.0.0/16 10.0.0.0 — 10.0.255.255 (65536 addresses)

  • 子网 1 10.0.0.0/17 10.0.0.0 — 10.0.127.255 (32768 addresses, half)

  • 子网 2 10.0.128.0/17 10.0.128.0 — 10.0.255.255 (32768 addresses, other half)

如果您需要三个子网,请调整它。


我无法连接到我的 RDS 数据库。我已经手动检查了所有细节,一切都很好。没有任何问题的迹象,我在文档中找不到任何合适的信息。我的 VPC 配置了窄 CIDR:10.0.0.0/22,每个子网有 255 个地址。在我将 CIDR 更改为 10.0.0.0/16 并将其完全拆分为两个子网后,我的 RDS 连接开始工作。我设法找到问题的根源纯粹是运气,因为它对我来说没有任何意义。


y3s*_*3sh 6

刚刚花了两个小时浏览此页面上的出色解决方案。是时候给出愚蠢的答案了!

我重做了我的安全组、VPC、路由表、子网、网关......不。我从 AWS 控制台复制粘贴了 URL,这在某些情况下会导致隐藏的尾随空格。端点位于一个<div>元素中,浏览器\n在复制时会给出一个元素。将其粘贴到 Intellij db 连接器会将其强制为一个空格。

我只是在将 URL 粘贴到我的源代码中的引号字符串中后才注意到这个问题。

隐藏空间

IDE 中的隐藏空间

  • 对于那些在列表中排名靠后的人...我必须执行此页面上发布的 3 个解决方案。1) 我必须添加 @aminah 概述的入站规则,2) 我必须确保按照 AnythonR 概述设置公共可访问性,最后 3) 复制文本时主机名末尾有一个空格从 aws 控制台...最后一个花了我一段时间才弄清楚...希望他们有一个像 Azure 那样的“复制到剪贴板”按钮。 (3认同)