当我尝试从其他 AWS 服务进行连接时,Amazon Relational Database Service (Amazon RDS) for PostgreSQL 数据库 (DB) 实例返回连接超时错误。我无法与数据库建立连接。
要解决 RDS for PostgreSQL 连接超时错误,请检查您的数据库端点配置、网络设置和安全组。根据您的连接设置,完成以下解决方法。
确保为数据库实例使用了正确的端点和端口。要查找端点和端口信息,请参阅查找 Amazon RDS 数据库实例的连接信息。
要授予数据库访问权限,请以 AWS 账户的管理用户身份连接到您的数据库。然后,运行以下命令:
GRANT CONNECT ON DATABASE database_name TO user_name;
**注意:**将 database_name 替换为您的数据库名称,将 user_name 替换为您要授予访问权限的数据库用户。
如果您的数据库实例可公开访问,请确认已启用 Public access(公共访问权限)选项,并在其路由表中配置了互联网网关。
如果您的数据库实例位于私有子网中,请验证您的路由表是否配置 NAT 网关路由以进行互联网访问。如果您从另一个虚拟私有云 (VPC) 进行连接,请创建 VPC 对等连接。
若要对网络问题进行故障排除,请使用 Reachability Analyzer。
验证您的安全组规则是否允许来自源 IP 地址或安全组的流量通过数据库端口。端口 5432 是 RDS for PostgreSQL 数据库的默认端口。检查您的网络访问控制列表(网络 ACL)规则,确认其允许数据库端口上的入站和出站流量。
如果您通过转发连接从 AWS 外部进行连接,则您的防火墙可能会阻止与数据库端口的连接。请与您的网络管理员合作,允许与数据库实例的端点和端口的出站连接。
有关如何修改数据库端口的信息,请参阅修改 Amazon RDS 数据库实例。
从您的本地计算机或 Amazon Elastic Compute Cloud (Amazon EC2) 实例运行以下命令,检查端口是否已被占用:
netstat -tuln | grep 5432
**注意:**如果您使用其他端口,请将 5432 替换为您的数据库端口号。
如果端口已被占用,则输出将显示使用该端口的端口和进程。您可以停止本地服务,也可以修改数据库实例以使用其他端口。
使用 AWS Systems Manager Automation 来识别 Amazon EC2 实例和数据库实例之间的连接问题。该自动化会检查您的实例状态、子网 CIDR、网络 ACL、安全组和路由表。有关更多信息,请参阅如何使用 AWSSupport-TroubleshootConnectivityToRDS Systems Manager 自动化运行手册在源 Amazon RDS 数据库和 Amazon EC2 目标之间配置 TroubleshootConnectivityToRDS?
**注意:**该自动化不会验证临时端口或特定端口设置。
无法连接到 Amazon RDS 数据库实例
使用安全组控制访问权限
错误 – 无法连接到服务器: 连接超时