如何使用 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 实例?
- 我确定我的用户名和密码是正确的。
- 我确定主机是正确的。
- 我不确定是否应该包括端口。
- 我不确定是否应该输入数据库名称,因为在我的数据库的 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,一个Subnet group,还有好几个Subnet,我不是很了解,是不是一定要做点什么?
最后,“状态”显示 Available
并亮起绿灯,看来一切正常。
我在 AWS 知识中心找到了一个有用的 link,希望对您有所帮助。
顺便说一句,如果您的 RDS 部署在 public 子网中,是的,如果您想通过 Internet 访问 RDS,则需要启用。
我的数据库实例位于 public 子网中,我无法从本地计算机通过互联网连接到它
当数据库实例的可公开访问 属性 设置为否时,可能会发生此问题。要检查数据库实例是否可 public 可访问,您可以使用 Amazon RDS 控制台或 AWS CLI。
将 Amazon RDS 实例的公开访问 属性 更改为是:
验证您的 VPC 是否附加了互联网网关。确保安全组的入站规则允许连接。
打开 Amazon RDS 控制台。
从导航窗格中选择数据库,然后 select 数据库实例。
选择修改。
在连接下,扩展附加配置部分,然后选择可公开访问。
选择继续。
选择修改数据库实例。
注意:您不需要选择“立即应用”。有关“立即应用”如何影响停机时间的详细信息,请参阅使用“立即应用”参数。
https://aws.amazon.com/premiumsupport/knowledge-center/rds-connectivity-instance-subnet-vpc/
我是 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 实例?
- 我确定我的用户名和密码是正确的。
- 我确定主机是正确的。
- 我不确定是否应该包括端口。
- 我不确定是否应该输入数据库名称,因为在我的数据库的 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,一个Subnet group,还有好几个Subnet,我不是很了解,是不是一定要做点什么?
最后,“状态”显示 Available
并亮起绿灯,看来一切正常。
我在 AWS 知识中心找到了一个有用的 link,希望对您有所帮助。 顺便说一句,如果您的 RDS 部署在 public 子网中,是的,如果您想通过 Internet 访问 RDS,则需要启用。
我的数据库实例位于 public 子网中,我无法从本地计算机通过互联网连接到它 当数据库实例的可公开访问 属性 设置为否时,可能会发生此问题。要检查数据库实例是否可 public 可访问,您可以使用 Amazon RDS 控制台或 AWS CLI。
将 Amazon RDS 实例的公开访问 属性 更改为是:
验证您的 VPC 是否附加了互联网网关。确保安全组的入站规则允许连接。
打开 Amazon RDS 控制台。
从导航窗格中选择数据库,然后 select 数据库实例。
选择修改。
在连接下,扩展附加配置部分,然后选择可公开访问。
选择继续。
选择修改数据库实例。
注意:您不需要选择“立即应用”。有关“立即应用”如何影响停机时间的详细信息,请参阅使用“立即应用”参数。
https://aws.amazon.com/premiumsupport/knowledge-center/rds-connectivity-instance-subnet-vpc/