如何排查有关 Amazon Aurora 连接的问题?

上次更新日期:2022 年 3 月 18 日

如何排查运行 Amazon Aurora 的 Amazon Relational Database Service (Amazon RDS) 集群或实例的连接问题 ?

简短描述

以下是 Amazon Aurora 数据库集群或实例连接问题的常见原因:

  • Aurora 数据库集群或实例仍在创建过程中,尚未处于可用状态。
  • 数据库实例的安全组、ACL 或本地防火墙阻止了来自源实例或其 IP 地址的连接。
  • 与您的 Amazon Virtual Private Cloud (Amazon VPC) 子网关联的路由表不允许来自您的本地计算机或数据库实例的流量或不进行路由。
  • 通过互联网从本地计算机连接时,数据库实例不可公开访问。
  • DNS 名称解析失败,可能是因为客户端未连接到正确的 Aurora 终端节点。
  • 由于出现底层硬件或数据库进程问题,Amazon RDS 数据库实例正在相应执行实例还原或故障转移。

解决方法

为帮助解决 Amazon RDS(包括 Aurora 实例)上常见的连接问题,请参阅如何解决 Amazon RDS 数据库实例的连接问题?

对于 Aurora 数据库集群,请确保您的客户端连接到正确的终端节点。由于 Amazon Aurora 属于托管式的服务,您必须使用 MySQL 或 PostgreSQL 客户端工具连接到 Aurora DNS 终端节点。

请务必连接正确的 Aurora 终端节点。要验证您的客户端当前正在连接的集群终端节点、读取终端节点和自定义终端节点,请执行以下步骤:

1.    打开 Amazon RDS 控制台

2.    从导航窗格中选择数据库

3.    从资源组中选择您的数据库集群,然后在连接和安全性的终端节点部分查看集群详细信息。

4.    使用 telnet/nc 命令验证终端节点连接:

telnet <RDS endpoint> <port number>
nc <RDS endpoint> <port number>

5.    连接后,通过为 Amazon Aurora MySQL 兼容版或 Amazon Aurora PostgreSQL 兼容版运行以下命令,验证您是否已连接到读取器或写入器终端节点:

"SHOW GLOBAL VARIABLES LIKE 'innodb_read_only';  --> MySQL
"SHOW transaction_read_only "; --> PostgreSQL

如果变量设置为 ON,则表示您已连接到 Aurora 副本。如果变量设置为 OFF,则表示您连接到主实例。