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

连接到 Amazon RDS 数据库实例

在连接到数据库实例之前,您必须先创建数据库实例。有关信息,请参阅 创建 Amazon RDS 数据库实例。Amazon RDS 配置数据库实例后,您可以使用标准客户端应用程序或实用程序将数据库引擎连接到数据库实例。在连接字符串中,指定数据库实例终端节点中的 DNS 地址作为主机参数,并指定数据库实例终端节点中的端口号作为端口参数。

查找 Amazon RDS 数据库实例的连接信息

数据库实例的连接信息包括其终端节点、端口和有效数据库用户,如主用户。例如,对于 MySQL 数据库实例,假设终端节点值是 mydb.123456789012.us-east-1.rds.amazonaws.com。在这种情况下,端口值是 3306,数据库用户是 admin。鉴于此信息,您可以在连接字符串中指定以下值:

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

  • 对于端口,请指定 3306.

  • 对于用户,请指定 admin

终端节点对于每个数据库实例都是唯一的,端口和用户的值可能会有所不同。以下列表显示了每个数据库引擎的最常见端口:

  • MariaDB – 3306

  • Microsoft SQL Server – 1433

  • MySQL – 3306

  • Oracle – 1521

  • PostgreSQL – 5432

要连接到数据库实例,请使用数据库引擎的任何客户端。例如,您可以使用 mysql 实用程序连接到 MariaDB 或 MySQL 数据库实例。您可以使用 Microsoft SQL Server Management Studio 连接到 SQL Server 数据库实例。您可以使用 Oracle SQL Developer 连接到 Oracle 数据库实例,或使用 psql 命令行实用程序连接到 PostgreSQL 数据库实例。

要查找数据库实例的连接信息,您可以使用 AWS 管理控制台、AWS Command Line Interface (AWS CLI) describe-db-instances 命令或 Amazon RDS API DescribeDBInstances 操作列出其详细信息。

在 AWS 管理控制台 中查找数据库实例的连接信息

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Databases (数据库) 以显示数据库实例的列表。

  3. 选择数据库实例的名称以显示其详细信息。

  4. Connectivity & security (连接和安全性) 选项卡上,复制终端节点。另请注意端口号。您需要终端节点和端口号才能连接到数据库实例。

    
                            数据库实例的终端节点和端口
  5. 如果需要查找主用户名,请选择 Configuration (配置) 选项卡并查看 Master username (主用户名) 值。

要使用 AWS CLI 查找数据库实例的连接信息,请调用 describe-db-instances 命令。在调用中,查询数据库实例 ID、终端节点、端口和主用户名。

对于 Linux、macOS 或 Unix:

aws rds describe-db-instances \ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

对于 Windows:

aws rds describe-db-instances ^ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

您的输出应类似于以下内容。

[ [ "mydb", "mydb.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ], [ "myoracledb", "myoracledb.123456789012.us-east-1.rds.amazonaws.com", 1521, "dbadmin" ], [ "mypostgresqldb", "mypostgresqldb.123456789012.us-east-1.rds.amazonaws.com", 5432, "postgresadmin" ] ]

要使用 Amazon RDS API 查找数据库实例的连接信息,请调用 DescribeDBInstances 操作。在输出中,找到终端节点地址、终端节点端口和主用户名的值。

数据库身份验证选项

Amazon RDS 支持以下对数据库用户进行身份验证的方法:

  • 密码身份验证 – 数据库实例将执行用户账户的所有管理。您可以使用 SQL 语句创建用户并指定密码。您可以使用的 SQL 语句取决于数据库引擎。

  • AWS Identity and Access Management (IAM) 数据库身份验证 – 您在连接到数据库实例时无需使用密码。而是使用身份验证令牌。

  • Kerberos 身份验证 – 使用 Kerberos 和 Microsoft Active Directory 对数据库用户进行外部身份验证。Kerberos 是一种网络身份验证协议,它使用票证和对称密钥加密,而不再需要通过网络传输密码。Kerberos 已内置到 Active Directory 中,用于在网络资源(如数据库)中对用户进行身份验证。

IAM 数据库身份验证和 Kerberos 身份验证仅适用于特定的数据库引擎和版本。

有关更多信息,请参阅 Amazon RDS 的数据库身份验证

加密连接

您可以使用应用程序中的安全套接字层 (SSL) 或传输层安全 (TLS) 来加密与数据库实例的连接。每个数据库引擎都有自己的用于实施 SSL/TLS 的过程。有关更多信息,请参阅 使用 SSL/TLS 加密与数据库实例的连接

在 VPC 中访问数据库实例的方案

利用 Amazon Virtual Private Cloud (Amazon VPC),您可以在 Virtual Private Cloud (VPC) 中启动 AWS 资源,如 Amazon RDS 数据库实例。使用 Amazon VPC 时,您的虚拟联网环境完全由您控制。您可以选择自己的 IP 地址范围、创建子网以及配置路由和访问控制列表。

VPC 安全组控制 VPC 内的数据库实例的访问权限。每个 VPC 安全组规则都允许特定的源访问 VPC 中与此 VPC 安全组关联的数据库实例。源可以是一个地址范围 (例如,203.0.113.0/24) 或另一个 VPC 安全组。指定作为源的 VPC 安全组后,就可以允许从使用此源 VPC 安全组的所有实例 (通常为应用程序服务器) 中传入流量。

在尝试连接到您的数据库实例之前,请为您的使用案例配置 VPC。以下是在 VPC 中访问数据库实例的常见方案:

  • VPC 中的数据库实例被同一 VPC 中的 Amazon EC2 实例访问 – 数据库实例在 VPC 中的常见用途是与在同一 VPC 中的 EC2 实例中运行的应用程序服务器共享数据。EC2 实例可能会使用与数据库实例交互的应用程序运行 Web 服务器。

  • VPC 中的数据库实例被不同 VPC 中的 EC2 实例访问 – 当您的数据库实例与用于访问该实例的 EC2 实例位于不同的 VPC 中时,您可以使用 VPC 对等连接访问该数据库实例。

  • 客户端应用程序通过互联网访问 VPC 中的数据库实例 – 要从客户端应用程序通过互联网访问 VPC 中的数据库实例,您可配置包含一个公有子网的 VPC,以及一个互联网网关以实现通过互联网通信。

    要从 VPC 外部连接到数据库实例,该数据库实例必须可公开访问。此外,必须使用数据库实例安全组的入站规则授予访问权限,并且必须满足其他要求。有关更多信息,请参阅 无法连接到 Amazon RDS 数据库实例

  • VPC 中的数据库实例被私有网络访问 – 如果您的数据库实例不可公开访问,则可以使用 AWS 站点到站点 VPN 连接或 AWS Direct Connect 私有网络连接。

  • VPC 中的数据库实例被非 VPC 中的 EC2 实例访问 – 您可以使用 ClassicLink 在 VPC 中的数据库实例与不在 VPC 中的 EC2 实例之间进行通信。

有关更多信息,请参阅 在 VPC 中访问数据库实例的方案

连接到运行特定数据库引擎的数据库实例

有关连接到运行特定数据库引擎的数据库实例的信息,请按照数据库引擎的说明操作:

使用 RDS Proxy 管理连接

您还可以使用 Amazon RDS Proxy 管理与 MySQL 和 PostgreSQL 数据库实例的连接。RDS Proxy 允许应用程序池化和共享数据库连接,以提高可扩展性。