连接到 Amazon Aurora 数据库集群 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

连接到 Amazon Aurora 数据库集群

您可以使用用于连接到 MySQL 或 PostgreSQL 数据库的同一工具来连接到 Aurora 数据库集群。您可以使用连接到 MySQL 或 PostgreSQL 数据库实例的任何脚本、实用程序或应用程序指定连接字符串。您可以使用同一个公有密钥进行安全套接字层 (SSL) 连接。

在连接字符串中,通常使用与数据库集群关联的特殊终端节点的主机和端口信息。借助这些终端节点,无论集群中有多少个数据库实例,您都可以使用相同的连接参数。您还可以将 Aurora 数据库集群中特定数据库实例的主机和端口信息用于专业任务,例如故障排除。

注意

对于 Aurora Serverless 数据库集群,您可以连接到数据库终端节点而非数据库实例。您可以在 Aurora Serverless 的 Connectivity & security (连接和安全) 选项卡上找到 Amazon Web Services Management Console 数据库集群的数据库终端节点。有关更多信息,请参阅“使用 Amazon Aurora Serverless v1”。

无论您使用哪种 Aurora 数据库引擎和特定工具来处理数据库集群或实例,终端节点都必须可访问。Amazon Aurora 数据库集群只能在基于 Amazon VPC 服务的 Virtual Private Cloud (VPC) 中创建。这意味着您可以使用以下方法之一从 VPC 内部或 VPC 外部访问终端节点。

  • 访问 VPC 内的 Amazon Aurora 数据库集群 – 启用通过 VPC 访问 Amazon Aurora 数据库集群的功能。为实现此目的,您可以编辑 VPC 的安全组上的入站规则以允许访问特定 Aurora 数据库集群。要了解更多信息,包括如何为不同的 Aurora 数据库集群场景配置 VPC,请参阅 Amazon Virtual Private Cloud VPC 和 Amazon Aurora

  • 访问 VPC 外的 Amazon Aurora 数据库集群 – 要从 VPC 外部访问 Amazon Aurora 数据库集群,请使用数 Amazon Aurora 据库集群的公有终端节点地址。

有关更多信息,请参阅排除 Aurora 连接故障

连接到 Amazon Aurora MySQL 数据库集群

要对 Aurora 数据库集群进行身份验证,您可以使用 MySQL 用户名和密码身份验证或 Amazon Identity and Access Management(IAM)数据库身份验证。有关使用 MySQL 用户名和密码身份验证的更多信息,请参阅 MySQL 文档中的访问控制和账户管理。有关使用 IAM 数据库身份验证的更多信息,请参阅 的 IAM 数据库身份验证

在连接到与 MySQL 8.0 兼容的 Amazon Aurora 数据库集群时,您可以运行与 MySQL 8.0 版兼容的 SQL 命令。最低兼容版本是 MySQL 8.0.23。有关 MySQL 8.0 SQL 语法的更多信息,请参阅 MySQL 8.0 参考手册。有关适用于 Aurora MySQL 版本 3 的限制的信息,请参阅 比较 Aurora MySQL 版本 3 和 MySQL 8.0 社群版

在连接到与 MySQL 5.7 兼容的 Amazon Aurora 数据库集群时,您可以运行与 MySQL 5.7 版兼容的 SQL 命令。有关 MySQL 5.7 SQL 语法的更多信息,请参阅 MySQL 5.7 参考手册。有关适用于 Aurora MySQL 5.7 的限制的信息,请参阅与 MySQL 5.7 兼容的 Aurora MySQL 版本 2

注意

有关连接到 Amazon Aurora MySQL 数据库集群的实用详细指南,您可以参阅 Aurora 连接管理手册。

在数据库集群的详细信息视图中,您可以找到集群终端节点,可在 MySQL 连接字符串中使用此终端节点。该终端节点由数据库集群的域名和端口组成。例如,如果终端节点值为 mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com:3306,则需要在 MySQL 连接字符串中指定以下值:

  • 对于主机或主机名,请指定 mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com

  • 对于端口,请指定 3306 或在创建数据库集群时使用的端口值

集群终端节点将您连接到数据库集群的主实例。可使用集群终端节点执行读取和写入操作。数据库集群还可以具有最多 15 个 Aurora 副本,这些副本支持对数据库集群中的数据进行只读访问。主实例和每个 Aurora 副本具有唯一的终端节点,该终端节点独立于集群终端节点,允许您直接连接到集群中的特定数据库实例。集群终端节点始终指向主实例。如果主实例发生故障并被替换,则集群终端节点将指向新的主实例。

要查看集群终端节点(写入器终端节点),请在 Amazon RDS 控制台中选择 Databases (数据库),然后选择数据库集群的名称以显示数据库集群详细信息。


                Amazon Aurora 详细信息

适用于 Aurora MySQL 的连接实用程序

以下是您可以使用的一些连接实用程序:

  • 命令行 – 您可以使用 MySQL 命令行实用程序等工具连接到 Amazon Aurora 数据库集群。有关使用 MySQL 实用程序的更多信息,请参阅 MySQL 文档中的 mysql — MySQL 命令行客户端

  • GUI – 您可以使用 MySQL Workbench 实用程序通过 UI 接口进行连接。有关更多信息,请参阅下载 MySQL Workbench 页。

  • 应用程序 – 您可以使用适用于 MySQL 的 Amazon JDBC 驱动程序将客户端应用程序连接到 Aurora MySQL 数据库集群。有关 Amazon JDBC Driver for MySQL 的更多信息及其完整使用说明,请参阅 Amazon JDBC Driver for MySQL GitHub 存储库

    注意

    版本 3.0.3 的 MariaDB Connector/J 实用程序放弃了对 Aurora 数据库集群的支持,因此我们强烈建议转用适用于 MySQL 的 Amazon JDBC 驱动程序。适用于 MySQL 的 Amazon JDBC 驱动程序提高了 Aurora MySQL 数据库集群的失效转移速度。

    如果您使用 Aurora Serverless v1 数据库集群,则故障转移优势不适用,但您可以通过将 failureDetectionEnabled 参数设置为 false 以禁用该功能。要查看配置选项的完整列表,请参阅适用于 MySQL 的 Amazon JDBC 驱动程序 GitHub 存储库

使用 MySQL 实用程序与 Aurora MySQL 连接

使用以下过程。假设您在 VPC 的私有子网中配置了数据库集群。您可以使用根据教程:创建 Web 服务器和 Amazon Aurora 数据库集群中的教程配置的 Amazon EC2 实例进行连接。

注意

在本教程中,此过程不要求安装 Web 服务器,但要求安装 MariaDB 10.5。

使用 MySQL 实用程序连接到数据库集群
  1. 登录到您要用于连接到数据库集群的 EC2 实例。

    应可以看到如下所示的输出内容。

    Last login: Thu Jun 23 13:32:52 2022 from xxx.xxx.xxx.xxx __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-10-0-xxx.xxx ~]$
  2. 在命令提示符处键入以下命令,以连接到数据库集群的主数据库实例。

    将参数 -h 替换为主实例的终端节点 DNS 名称。将参数 -u 替换为数据库用户账户的用户 ID。

    mysql -h primary-instance-endpoint.Amazon_account.AWS_Region.rds.amazonaws.com -P 3306 -u database_user -p

    例如:

    mysql -h my-aurora-cluster-instance.c1xy5example.123456789012.eu-central-1.rds.amazonaws.com -P 3306 -u admin -p
  3. 输入数据库用户的密码。

    应可以看到如下所示的输出内容。

    Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 1770 Server version: 8.0.23 Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>
  4. 输入 SQL 命令。

连接适用于 MySQL 的 Amazon Web Services JDBC 驱动程序

适用于 MySQL 的 Amazon JDBC 驱动程序是专为 Aurora MySQL 的高可用性而设计的客户端驱动程序。驱动程序与 MySQL Connector/J 驱动程序直接兼容。要安装或升级连接器,请将 MySQL connector .jar 文件(位于应用程序 CLASSPATH 中)替换为 Amazon JDBC Driver for MySQL .jar 文件,并将连接 URL 前缀从 jdbc:mysql:// 更新为 jdbc:mysql:aws://

Amazon JDBC Driver for MySQL 充分利用 Aurora MySQL 的故障转移功能。发生失效转移时,驱动程序直接向集群查询新拓扑,而不是使用 DNS 解析。通过直接查询集群,此驱动程序能够以可靠和可预测的方式更快地连接到新的主数据库。这种方法有助于避免由 DNS 解析造成的潜在延迟。

适用于 MySQL 的 Amazon JDBC 驱动程序支持 IAM 数据库身份验证。有关更多信息,请参阅适用于 MySQL 的 Amazon JDBC 驱动程序 GitHub 存储库中的 Amazon IAM 数据库身份验证。有关 IAM 数据库身份验证的更多信息,请参阅 的 IAM 数据库身份验证

有关 Amazon JDBC Driver for MySQL 的更多信息及其完整使用说明,请参阅 Amazon JDBC Driver for MySQL GitHub 存储库。

使用 SSL 连接 Aurora MySQL

您可以在连接到 Aurora MySQL 数据库实例时使用 SSL 加密功能。有关信息,请参阅 将 TLS 与 Aurora MySQL 数据库集群结合使用

要使用 SSL 进行连接,请使用以下过程中所述的 MySQL 实用程序。要使用 IAM 数据库身份验证,您必须使用 SSL 连接。有关信息,请参阅 的 IAM 数据库身份验证

注意

要使用 SSL 连接到集群终端节点,您的客户端连接实用程序必须支持主题替代名称 (SAN)。如果您的客户端连接实用程序不支持 SAN,则可以直接连接到 Aurora 数据库集群中的实例。有关 Aurora 终端节点的更多信息,请参阅Amazon Aurora 连接管理

使用 MySQL 实用程序通过 SSL 连接到加密的数据库集群

  1. 下载 Amazon RDS 签名证书的公有密钥。

    有关下载证书的信息,请参阅使用 SSL/TLS 加密与数据库集群的连接

  2. 在命令提示符处键入以下命令,以便使用 MySQL 实用程序连接到带 SSL 的数据库集群的主实例。将参数 -h 替换为主实例的终端节点 DNS 名称。将参数 -u 替换为数据库用户账户的用户 ID。将参数 --ssl-ca 替换为相应的 SSL 证书文件名。根据系统提示键入主用户密码。

    mysql -h mycluster-primary.123456789012.us-east-1.rds.amazonaws.com -u admin_user -p --ssl-ca=[full path]global-bundle.pem --ssl-verify-server-cert

您应该可以看到类似于如下所示的输出内容。

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 350 Server version: 8.0.26-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

有关构建 RDS for MySQL 连接字符串和查找 SSL 连接的公有密钥的一般说明,请参阅连接到运行 MySQL 数据库引擎的数据库实例

连接到 Amazon Aurora PostgreSQL 数据库集群

您可以使用用于连接到 PostgreSQL 数据库的同一工具来连接到 Amazon Aurora PostgreSQL 数据库集群中的数据库实例。在连接过程中,您使用相同的公有密钥进行安全套接字层 (SSL) 连接。在连接到 PostgreSQL 数据库实例的任何脚本、实用程序或应用程序的连接字符串中,您可以使用 Aurora PostgreSQL 数据库集群中的主实例或 Aurora 副本的终端节点和端口信息。在连接字符串中,请指定主实例或 Aurora 副本终端节点中的 DNS 地址以作为主机参数。指定该终端节点中的端口号以作为端口参数。

在连接到 Amazon Aurora PostgreSQL 数据库集群中的数据库实例时,您可以运行与 PostgreSQL 兼容的任何 SQL 命令。

您可以在 Aurora PostgreSQL 数据库集群详细信息视图中找到集群端点名称、状态、类型和端口号。请在您的 PostgreSQL 连接字符串中使用端点和端口号。例如,如果终端节点值为 mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com,则需要在 PostgreSQL 连接字符串中指定以下值:

  • 对于主机或主机名,请指定 mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com

  • 对于端口,请指定 5432 或在创建数据库集群时使用的端口值

集群终端节点将您连接到数据库集群的主实例。可使用集群终端节点执行读取和写入操作。数据库集群还可以具有最多 15 个 Aurora 副本,这些副本支持对数据库集群中的数据进行只读访问。Aurora 集群中的每个数据库实例(即,主实例和每个 Aurora 副本)具有唯一的终端节点,该终端节点独立于集群终端节点。这个唯一的终端节点允许您与集群中特定的数据库实例直接连接。集群终端节点始终指向主实例。如果主实例发生故障并替换该实例,集群终端节点将指向新的主实例。

要查看集群终端节点(写入器终端节点),请在 Amazon RDS 控制台中选择 Databases (数据库),然后选择数据库集群的名称以显示数据库集群详细信息。


                Amazon Aurora 详细信息

适用于 Aurora PostgreSQL 的连接实用程序

以下是您可以使用的一些连接实用程序:

  • 命令行 – 您可以使用 psql、PostgreSQL 交互式终端等工具连接到 Aurora PostgreSQL 数据库集群。有关使用 PostgreSQL 交互式终端的更多信息,请参阅 PostgreSQL 文档中的 psql

  • GUI – 您可以使用 pgAdmin 实用程序通过 UI 界面连接到 Aurora PostgreSQL 数据库集群。有关更多信息,请参阅 pgAdmin 网站中的下载页面。

  • 应用程序 – 您可以使用适用于 PostgreSQL 的 Amazon JDBC 驱动程序将应用程序连接到 Aurora PostgreSQL 数据库集群。有关更多信息,请参阅 使用适用于 PostgreSQL 的 Amazon JDBC 驱动程序进行连接

使用适用于 PostgreSQL 的 Amazon JDBC 驱动程序进行连接

适用于 PostgreSQL 的 Amazon JDBC 驱动程序是一个客户端包装器,旨在帮助您充分利用 Aurora PostgreSQL 的高可用性功能。有关 Amazon JDBC Driver for PostgreSQL 的更多信息及其完整使用说明,请参阅 Amazon JDBC Driver for PostgreSQL GitHub 存储库

适用于 PostgreSQL 的 Amazon JDBC 驱动程序扩展了社区 pgJDBC 驱动程序。它旨在充分利用 Aurora PostgreSQL 的集群感知失效转移功能。发生失效转移时,适用于 PostgreSQL 的 Amazon JDBC 驱动程序直接在集群中查询新拓扑,而不是使用 DNS 解析。通过直接查询集群,适用于 PostgreSQL 的 Amazon JDBC 驱动程序能够以可靠和可预测的方式更快地连接到新的主数据库,从而避免 DNS 解析造成的潜在延迟。

适用于 PostgreSQL 的 Amazon JDBC 驱动程序支持 Amazon Identity and Access Management(IAM)数据库身份验证和 Amazon Secrets Manager。有关将这些身份验证机制与此驱动程序结合使用的更多信息,请参阅适用于 PostgreSQL 的 Amazon JDBC 驱动程序 GitHub 存储库中的 Amazon IAM 身份验证插件Amazon Secrets Manager 插件

有关 IAM 数据库身份验证的更多信息,请参阅 的 IAM 数据库身份验证。有关 Secrets Manager 的更多信息,请参阅《Amazon Secrets Manager 用户指南》https://docs.amazonaws.cn/secretsmanager/latest/userguide/intro.html

排除 Aurora 连接故障

导致新 Aurora 数据库集群连接故障的常见原因包括:

  • VPC 中的安全组不允许访问 – 您的 VPC 需要通过正确地配置 VPC 中的安全组来允许来自您的设备或 Amazon EC2 实例的连接。要解决问题,请修改 VPC 的安全组入站规则以允许连接。有关示例,请参阅教程:创建 VPC 以用于数据库集群(仅限 IPv4)

  • 防火墙规则阻止的端口 – 检查为 Aurora 数据库集群配置的端口值。如果防火墙规则阻止该端口,则可以使用不同的端口重新创建实例。

  • 不完整或不正确的 IAM 配置 – 如果您创建了 Aurora 数据库实例以使用基于 IAM– 的身份验证,请确保其配置正确。有关更多信息,请参阅“ 的 IAM 数据库身份验证”。

有关 Aurora 数据库连接问题排查的更多信息,请参阅 无法连接到 Amazon RDS 数据库实例