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

连接到 Amazon Aurora 数据库集群

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

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

注意

对于 Aurora Serverless v1 数据库集群,您可以连接到数据库终端节点而非数据库实例。您可以在 AWS 管理控制台 的 Connectivity & security (连接和安全) 选项卡上找到 Aurora Serverless v1 数据库集群的数据库终端节点。有关更多信息,请参阅 使用 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 据库集群的公有终端节点地址。您还可以使用 ClassicLink 从不在 VPC 中的 Amazon EC2 实例连接到 VPC 内的 Amazon Aurora 数据库集群。有关更多信息,请参阅 VPC 中的数据库实例由不在 VPC 中的 EC2 实例访问

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

连接到 Amazon Aurora MySQL 数据库集群

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

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

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

注意

有关连接到 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 页。

  • 应用程序 – 您可以使用 MariaDB Connector/J 实用程序将应用程序连接到 Aurora 数据库集群。有关更多信息,请参阅 MariaDB Connector/J 下载页面。

    注意

    如果将 MariaDB Connector/J 实用工具与 Aurora Serverless v1 数据库集群结合使用,请在连接字符串中使用前缀 jdbc:mariadb:aurora//mariadb:aurora 参数避免了故障转移目标的自动 DNS 扫描。Aurora Serverless v1 数据库集群不需要此扫描,这会导致建立连接的延迟。

可以在连接到 Amazon Aurora 数据库实例时使用 SSL 加密功能。有关信息,请参阅在 MySQL 数据库实例中使用 SSL

使用 SSL 连接 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 名称。将参数 -ssl_ca 替换为相应的 SSL 证书文件名。根据系统提示键入主用户密码。

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

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

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

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

连接 Amazon Web Services JDBC Driver for MySQL(预览)

这是 Amazon Web Services JDBC Driver for MySQL 的预览版文档。本文档随时可能更改。

AWS JDBC Driver for MySQL(预览版)是专为 Aurora MySQL 的高可用性而设计的客户端驱动程序。AWS JDBC Driver for MySQL 与 MySQL ConnectOR/J 驱动程序直接兼容。

AWS JDBC Driver for MySQL 充分利用 Aurora MySQL 的故障切换功能。AWS JDBC Driver for MySQL 完全维护数据库集群拓扑和每个数据库实例角色(主数据库实例或 Aurora 副本)的缓存。它使用此拓扑来绕过 DNS 解析造成的延迟,以便尽快建立与新的主数据库实例的连接。

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

连接到 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:5432,则需要在 PostgreSQL 连接字符串中指定以下值:

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

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

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

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


                Amazon Aurora 详细信息

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

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

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

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

  • 应用程序 – 您可以使用 PostgreSQL JDBC 驱动程序将应用程序连接到 PostgreSQL 数据库实例。有关更多信息,请参阅 PostgreSQL JDBC 驱动程序网站中的下载页面。

排除 Aurora 连接故障

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

  • VPC 中的安全组不允许访问 – 您的 VPC 需要通过正确地配置 VPC 中的安全组来允许来自您的设备或 Amazon EC2 实例的连接。要解决问题,请修改 VPC 的安全组入站规则以允许连接。有关示例,请参阅创建 VPC 和子网

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

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

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