跳至内容

如何对尝试连接 Aurora PostgreSQL 兼容版数据库集群时出现的连接超时错误进行故障排除?

3 分钟阅读
0

我想对尝试连接 Amazon Aurora PostgreSQL 兼容版数据库 (DB) 集群时出现的连接超时错误进行故障排除。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

当您连接到 Aurora PostgreSQL 兼容版数据库集群时,网络配置问题通常会导致连接超时错误。要识别和解决连接超时问题,请执行以下操作。

检查数据库实例状态

完成以下步骤:

  1. 打开 Amazon Relational Database Service (Amazon RDS) 控制台
  2. 在导航窗格中,选择 Databases(数据库)。
  3. Status(状态)列中,确保 Aurora PostgreSQL 兼容版数据库实例处于 Available(可用)状态。<br id=hardline_break/> 重要事项: 如果实例不可用,请等待其恢复可用状态,然后再继续进行后续故障排除。

检查安全组配置

要检查入站和出站规则,请完成以下步骤:

  1. 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台
  2. 在导航窗格中,选择 Security Groups(安全组)。
  3. 选择与您的 Aurora PostgreSQL 兼容版数据库集群关联的安全组。
  4. 选择 Inbound rules(入站规则)。
  5. 确保存在允许来自客户端 IP 地址或安全组的流量通过端口 5432(或自定义端口)的规则。<br id=hardline_break/> 注意: 选择 Edit inbound rules(编辑入站规则),添加或修改接受所需流量的规则。
  6. 如果从 Amazon EC2 实例进行连接,请选择 Outbound rules(出站规则)。
  7. 确保 Amazon EC2 实例的安全组允许出站流量通过端口 5432 流向 Aurora PostgreSQL 兼容版集群的安全组。<br id=hardline_break/> 注意: 选择 Edit outbound rules(编辑出站规则),添加或修改接受所需流量的规则。

检查网络 ACL 配置

要检查网络访问控制列表(网络 ACL)配置,请完成以下步骤:

  1. 打开 Amazon Virtual Private Cloud (Amazon VPC) 控制台
  2. 在导航窗格中,选择 Network ACLs(网络 ACL)。
  3. 选择与 Aurora PostgreSQL 兼容版数据库集群的子网关联的网络 ACL。
  4. 选择 Inbound rules(入站规则)和 Outbound rules(出站规则),然后验证这些规则是否允许客户端和数据库之间通过端口 5432 进行流量传输。

检查路由表配置

要检查路由表配置,请完成以下步骤:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Route Tables(路由表)。
  3. 选择与 Aurora PostgreSQL 兼容版数据库集群的子网关联的路由表。
  4. 验证您的无类别域间路由是否存在指向正确目标的路由。

例如,目标可以是互联网网关、NAT 网关或对等连接。如果从不同的 VPC 或本地网络进行连接,请确保已设置必要的路由。

检查 VPC 对等或中转网关配置

如果通过 VPC 对等连接从不同的 VPC 进行连接,请完成以下步骤:

  1. 按照 VPC 对等连接流程进行操作,验证 VPC 之间的 VPC 对等连接是否已正确设置。
  2. 检查两个 VPC 中的路由表是否包含必要的路由来引导二者之间的流量。
  3. 验证两个 VPC 中的安全组是否接受所需的流量。

如果通过中转网关从不同的 VPC 进行连接,请完成以下步骤:

  1. 遵循设计最佳实践,确保在 VPC 之间正确设置中转网关。
  2. 检查所有 VPC 连接的路由表是否包含必要的路由来引导它们之间的流量。
  3. 验证两个 VPC 中的安全组是否接受所需的流量。

检查 DNS 解析

如果跨 VPC 进行连接,请检查是否已为 VPC 对等连接启用 DNS 解析。

完成以下步骤:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Peering connections(对等连接)。
  3. 选择您的对等连接。
  4. 选择 Actions(操作),然后选择 Edit DNS settings(编辑 DNS 设置)。
  5. Edit DNS settings(编辑 DNS 设置)部分中,允许请求方和接受方 VPC 进行 DNS 解析。

检查互联网网关 IP 地址

如果尝试从 VPC 外部进行连接,且集群可以公开访问,请完成以下步骤:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Internet gateways(互联网网关)。
  3. 找到您的 VPC 的互联网网关,然后验证其是否处于 Attached(已连接)状态。
  4. 为您的互联网网关选择 VPC ID。
  5. Details(详细信息)中,选择 Main route table(主路由表)。
  6. 选择 Routes(路由),然后验证是否存在目标 IP 地址为 0.0.0.0/0 且指向目标互联网网关的路由。

测试与数据库实例的连接

测试您的连接,验证是否存在与网络或身份验证相关的问题。如果连接测试成功,则可能是您的数据库凭据出现问题。

要使用 telnet 测试网络连接,请运行以下命令:

telnet CLUSTER-ENDPOINT 5432

注意: 请将 CLUSTER-ENDPOINT 替换为 Aurora PostgreSQL 兼容版集群端点,并将 5432 替换为您的数据库端口。PostgreSQL 的默认数据库端口为 5432。

要在 telnet 不可用时测试网络连接,请运行以下命令:

nc -zv CLUSTER-ENDPOINT 5432

注意: 请将 CLUSTER-ENDPOINT 替换为 Aurora PostgreSQL 兼容版集群端点,并将 5432 替换为您的数据库端口。

如果连接成功,则表示您的安全组配置正确。

注意: Amazon RDS 不接受互联网控制消息协议 (ICMP) 流量,包括 ping。

检查可公开访问的配置

如果尝试从 VPC 外部连接到您的集群,则您的集群必须可公开访问。或者,您可以使用其他连接方法,例如堡垒主机或 AWS Direct Connect。

要检查您的集群是否可公开访问,请完成以下步骤:

  1. 打开 Amazon RDS 控制台
  2. 在导航窗格中,选择 Databases(数据库)。
  3. 选择 Aurora PostgreSQL 兼容版数据库集群,然后选择 Modify(修改)。
  4. Connectivity(连接)部分中,选择 Additional configuration(其他配置)。
  5. 确认已将集群设置为 Publicly accessible(可公开访问)。

检查 IP 地址是否存在冲突

验证您的本地网络与 VPC CIDR 范围之间是否存在 IP 地址冲突。如果存在冲突,您可能需要使用 NAT 或调整网络配置。

要检查您的 VPC 的 CIDR,请完成以下步骤:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Your VPCs(您的 VPC),然后选择用于本地网络连接的 VPC。
  3. 选择 CIDR 选项卡,然后确保 CIDR 数据块不与本地网络上的任何 IP 地址重叠。

使用 AWS CLI 检查 VPC CIDR

要使用 AWS CLI 描述 VPC CIDR 数据块,请运行以下 describe-vpcs AWS CLI 命令:

aws ec2 describe-vpcs \
    --vpc-ids VPC-ID \
    --region REGION

注意: 请将 VPC-ID 替换为您的 VPC ID,并将 REGION 替换为您的 AWS 区域。

相关信息

连接到 Amazon Aurora 数据库集群

使用安全组控制流向 AWS 资源的流量

使用网络访问控制列表控制子网流量

管理子网路由表

什么是 VPC 对等连接?

AWS 官方已更新 6 个月前