我无法使用 Postgres 连接到 AWS RDS

I cant connect to AWS RDS using Postgres

我在 aws 上创建了一个 instance/database,当我尝试通过我的终端连接到它时,通过 运行 宁下面的代码,我收到一个错误。

我运行终端里的那一行是:

psql --host=testdb.c7hgibdbsgjm.eu-west-2.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=testdb

它的错误 returns 是:

psql: error: could not connect to server: could not translate host name "testdb.c7hgibdbsgjm.eu-west-2.rds.amazonaws.com" 
to address: nodename nor servname provided, or not known. 

过去 3 天我一直在阅读相关文档并尝试使其正常工作,但我不知道哪里出了问题。

还有当我运行:

nslookup testdb.c7hgibdbsgjm.eu-west-2.rds.amazonaws.com

它returns:

Non-authoritative answer:
*** Can't find testdb.c7hgibdbsgjm.eu-west-2.rds.amazonaws.com: No answer

我有统计背景,我在 R 和 python 中做过一些编码,但我对使用终端等还比较陌生!

感谢您的任何指导或帮助,因为这让我想砸我的笔记本电脑。

似乎是 DNS 解析问题。我能够使用 DIG.

解决它

在 VPC 中,确保在 VPC 上启用了以下两项 options

  • 启用 Dns 主机名
  • 启用DnsSupport

如果 RDS 实例未托管在 VPC 中,而是通过 VPC 对等访问,则 DNS 解析可能需要 enabling 在 VPC 对等

在 运行 挖掘命令中: dig testdb.c7hgibdbsgjm.eu-west-2.rds.amazonaws.com

它返回了一个私有 IP:172.31.23.42

您似乎 运行 RDS 实例是私有的或内部的,即无法从 Internet 访问它。

您需要从 VPC 本身访问它或需要使用 VPN。