【问题标题】:AWS RDS Postgresql Pgadmin - Server doesn't listenAWS RDS Postgresql Pgadmin - 服务器不听
【发布时间】:2020-09-03 16:26:52
【问题描述】:

我按照 here 找到的 aws 教程进行操作。

一切都很顺利,直到通过 pgadmin 连接到 postgresql 实例。

我输入了适当的用户/密码信息并适当地复制/粘贴了数据库的地址。

在我的 aws 仪表板上,端口确实是 5432。

我收到以下错误消息:

Server doesn't listen
The server doesn't accept connections: the connection library reports 
could not connect to server: Operation timed out Is the server running on host "my_database_name.some_stuff.us-west-2.rds.amazonaws.com" (52.10.228.18) and accepting TCP/IP connections on port 5432? 
If you encounter this message, please check if the server you're trying to contact is actually running PostgreSQL on the given port. Test if you have network connectivity from your client to the server host using ping or equivalent tools. Is your network / VPN / SSH tunnel / firewall configured correctly? 
For security reasons, PostgreSQL does not listen on all available IP addresses on the server machine initially. In order to access the server over the network, you need to enable listening on the address first. 
For PostgreSQL servers starting with version 8.0, this is controlled using the "listen_addresses" parameter in the postgresql.conf file. Here, you can enter a list of IP addresses the server should listen on, or simply use '*' to listen on all available IP addresses. For earlier servers (Version 7.3 or 7.4), you'll need to set the "tcpip_socket" parameter to 'true'. 
You can use the postgresql.conf editor that is built into pgAdmin III to edit the postgresql.conf configuration file. After changing this file, you need to restart the server process to make the setting effective. 
If you double-checked your configuration but still get this error message, it's still unlikely that you encounter a fatal PostgreSQL misbehaviour. You probably have some low level network connectivity problems (e.g. firewall configuration). Please check this thoroughly before reporting a bug to the PostgreSQL community. 

【问题讨论】:

  • 检查您为 RDS 实例选择的安全组。将端口 5432 添加到该安全组以允许来自您的网络的连接
  • @VaoTsun 安全组设置为默认值,当我进入我的安全组设置时,它为入站连接端口选择了“ALL”。

标签: postgresql amazon-web-services amazon-rds


【解决方案1】:

第 1 步 您得到的对话框与我在上面看到的相同。废话!

第 2 步 转到您的RDS instances

第 3 步 转到您的security groups

第 4 步 如果您的帐户与我的帐户类似,您会看到以下文字:

Your account does not support the EC2-Classic Platform in this region. 
DB Security Groups are only needed when the EC2-Classic Platform is supported. 
Instead, use VPC Security Groups to control access to your DB Instances. 
Go to the EC2 Console to view and manage your VPC Security Groups. 
For more information, see AWS Documentation on Supported Platforms and Using RDS in VPC.

步骤 5 返回并检查您的 RDS 安全组名称(RDS->instances 右键单击​​您的实例)。您将看到与此数据库实例关联的 VPC 安全组的安全组列表。

您将看到如下内容: default (sg-********) ( active )

第 6 步 在您的 VPC security groups 中找到与您的数据库匹配的 sg-********。右键单击它。编辑入站/出站规则以添加 postgresql。

尝试重新连接。

这解决了我的问题。

如果这不能解决你的问题我很抱歉,但我希望这个文档能给我带来一些调试业力。

【讨论】:

  • 如果您使用向导,它会自动创建rds-launch-wizard 安全组,允许从您当前的外部 IP 入站。
【解决方案2】:

转到安全组中的 AWS 服务,单击安全组 ID。从“操作”按钮单击“编辑入站角色”,然后将“源”更改为“我的 ip”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 2017-03-02
    • 2019-07-05
    • 1970-01-01
    相关资源
    最近更新 更多