【发布时间】:2021-08-11 02:47:32
【问题描述】:
我是 RDS 的新手,大部分时间都只通过 Rails 和/或 Heroku 使用过 postgres,所以对数据库管理没有那么深入。我要做的就是验证我可以连接到我刚刚在 AWS 上创建的 RDS 实例,但它正在挂起,psql 在挂起大约 30 秒或几分钟后报告此问题:
$ psql postgresql://myuser:mypass@myawshost.rds.amazonaws.com:5432/my-db-name
psql: error: could not connect to server: Operation timed out
Is the server running on host "myawshost.rds.amazonaws.com" (<the ip address>) and accepting
TCP/IP connections on port 5432?
如何从 localhost 连接到我的 AWS RDS 实例?
- 我确定我的用户名和密码正确。
- 我确定主机是正确的。
- 我不确定是否应该包括端口。
- 我不确定我是否应该放置一个数据库名称,就像我的数据库的 RDS 管理控制台中的“配置”选项卡下,它显示
DB instance ID: my-db-name, Engine version: 13.3, DB name: -,我不确定如果-是我的实际 postgres 数据库名称或my-db-name是....
我用数据库名称尝试了这个,但它仍然挂起:
$ psql postgresql://myuser:mypass@myawshost.rds.amazonaws.com:5432/-
- 我编辑了在https://console.aws.amazon.com/rds/home 的
Connectivity & security选项卡的VPC security groups部分下链接的安全组,因此它允许所有传入连接。我还尝试将我的 IP 地址限制为传入连接。
任何帮助将不胜感激,谢谢。不知道为什么它会挂起来。我使用本地版本的 postgres 很好,但是连接到 postgres RDS 不起作用。
在Connectivity and Security > Security 部分下,我注意到它写着Public accessibility: No。我必须启用其他功能吗?还有一个VPC,一个子网组,几个子网,我不太了解,要不要在那里做点什么?
最后,“状态”表示Available 亮起绿灯,所以那里的情况似乎很好。
【问题讨论】:
-
您从哪里连接? Ec2 实例还是来自 AWS 外部?
-
来自 AWS 外部,如 here 和
DATABASE_URL所述。 -
Public accessibility必须为“是”。还有你的安全组是什么?
标签: postgresql amazon-web-services amazon-rds psql