如何使用 psql 连接到 RDS Postgres 实例

How to connect to RDS Postgres instance with psql

我是 RDS 的新手,大部分时间只通过 Rails and/or 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?

如何从本地主机连接到我的 AWS RDS 实例?

我用数据库名称试过了,它仍然挂起:

$ psql postgresql://myuser:mypass@myawshost.rds.amazonaws.com:5432/-

任何帮助将不胜感激,谢谢。不知道为什么它会挂起。我用本地版的postgres就好了,但是连接postgres RDS就不行了

Connectivity and Security > Security 部分下面,我刚刚注意到它说 Public accessibility: No。我必须启用其他功能吗?还有一个VPC,一个Subnet group,还有好几个Subnet,我不是很了解,是不是一定要做点什么?

最后,“状态”显示 Available 并亮起绿灯,看来一切正常。

我在 AWS 知识中心找到了一个有用的 link,希望对您有所帮助。 顺便说一句,如果您的 RDS 部署在 public 子网中,是的,如果您想通过 Internet 访问 RDS,则需要启用。

我的数据库实例位于 public 子网中,我无法从本地计算机通过互联网连接到它 当数据库实例的可公开访问 属性 设置为否时,可能会发生此问题。要检查数据库实例是否可 public 可访问,您可以使用 Amazon RDS 控制台或 AWS CLI。

将 Amazon RDS 实例的公开访问 属性 更改为是:

  1. 验证您的 VPC 是否附加了互联网网关。确保安全组的入站规则允许连接。

  2. 打开 Amazon RDS 控制台。

  3. 从导航窗格中选择数据库,然后 select 数据库实例。

  4. 选择修改。

  5. 在连接下,扩展附加配置部分,然后选择可公开访问。

  6. 选择继续。

  7. 选择修改数据库实例。

注意:您不需要选择“立即应用”。有关“立即应用”如何影响停机时间的详细信息,请参阅使用“立即应用”参数。

https://aws.amazon.com/premiumsupport/knowledge-center/rds-connectivity-instance-subnet-vpc/