连接到运行 MySQL 数据库引擎的数据库实例 - Amazon Relational Database Service

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

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

要对您的 RDS 数据库实例进行身份验证,可以使用一种适用于 MySQL 的身份验证方法和 AWS Identity and Access Management(IAM)数据库身份验证:

可使用 MySQL 命令行客户端等工具连接 MySQL 数据库实例。有关使用 MySQL 命令行客户端的更多信息,请参阅 MySQL 文档中的 mysql - MySQL 命令行客户端。您可以使用 MySQL Workbench 这款基于 GUI 的应用程序进行连接。有关更多信息,请参阅下载 MySQL Workbench 页。有关安装 MySQL(包括 MySQL 命令行客户端)的信息,请参阅安装和升级 MySQL

大多数 Linux 发行版包括 MariaDB 客户端,而不是 Oracle MySQL 客户端。要在大多数基于 RPM 的 Linux 发行版(包括 Amazon Linux 2)上安装 MySQL 命令行客户端,请运行以下命令:

yum install mariadb

要在大多数基于 DEB 的 Linux 发行版上安装 MySQL 命令行客户端,请运行以下命令:

apt-get install mariadb-client

要检查 MySQL 命令行客户端版本,请运行以下命令:

mysql --version

要阅读当前客户端版本的 MySQL 文档,请运行以下命令:

man mysql

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

您可以针对与 MySQL 数据库实例的连接使用安全套接字层 (SSL) 或传输层安全性协议 (TLS) 加密。有关信息,请参阅 将 SSL/TLS 与 MySQL 数据库实例结合使用。如果您要使用 AWS Identity and Access Management (IAM) 数据库身份验证,请确保使用 SSL/TLS 连接。有关信息,请参阅 适用于 MariaDB、MySQL 和 PostgreSQL 的 IAM 数据库身份验证

您也可以从 Web 服务器连接到数据库实例。有关更多信息,请参阅“教程:创建 Web 服务器和 Amazon RDS 数据库实例”。

注意

有关连接到 MariaDB 数据库实例的信息,请参阅连接到运行 MariaDB 数据库引擎的数据库实例

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

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

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

  • 对于端口,请指定 3306.

  • 对于用户,请指定 admin

要连接到数据库实例,请使用 MySQL 数据库引擎的任何客户端。例如,您可以使用 MySQL 命令行客户端或 MySQL Workbench。

要查找数据库实例的连接信息,您可以使用AWS Management Console、AWS CLI describe-db-instances 命令,或 Amazon RDS API DescribeDBInstances 操作列出其详细信息。

在 AWS Management Console 中查找数据库实例的连接信息
  1. 登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

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

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

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

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

对于 Linux、macOS 或 Unix:

aws rds describe-db-instances \ --filters "Name=engine,Values=mysql" \ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

对于 Windows:

aws rds describe-db-instances ^ --filters "Name=engine,Values=mysql" ^ --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"

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

[ [ "mydb1", "mydb1.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ], [ "mydb2", "mydb2.123456789012.us-east-1.rds.amazonaws.com", 3306, "admin" ] ]

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

从 MySQL 命令行客户端连接(未加密)

重要

仅当客户端和服务器位于同一 VPC 中,并且网络受信任时,才会使用未加密的 MySQL 连接。有关使用加密连接的信息,请参阅 从 MySQL 命令行客户端使用 SSL/TLS(加密)进行连接

要使用 MySQL 命令行客户端连接到数据库实例,请在命令提示符处输入以下命令。对于参数 -h,替换为数据库实例的 DNS 名称(终端节点)。将参数 -P 替换为数据库实例的端口。对于 -u 参数,替换有效数据库用户(如主用户)的用户名。根据系统提示输入主用户密码。

mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com -P 3306 -u mymasteruser -p

在输入用户的密码后,您应该会看到类似于以下内容的输出。

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9738 Server version: 8.0.23 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

从 MySQL Workbench 连接

若要从 MySQL Workbench 连接
  1. 下载 MySQL Workbench 页面下载并安装 MySQL Workbench。

  2. 打开 MySQL Workbench。

    
                        MySQL Workbench
  3. Database (数据库) 中选择 Manage Connections (管理连接)

  4. Manage Server Connections (管理服务器连接) 窗口中,选择 New (新建)

  5. Connect to Database (连接到数据库) 窗口中,输入以下信息:

    • Stored Connection (存储连接) – 输入连接的名称,例如 MyDB

    • Hostname (主机名) – 输入数据库实例的终端节点。

    • Port (端口) – 输入数据库实例使用的端口。

    • Username (用户名) – 输入有效数据库用户(如主用户)的用户名。

    • Password (密码) – (可选)选择 Store in Vault (存储在文件库中),然后输入并保存用户的密码。

    窗口看上去类似下面这样:

    
                        MySQL Workbench 连接窗口

    您可以使用 MySQL Workbench 的功能来自定义连接。例如,您可以使用 SSL 选项卡配置 SSL/TLS 连接。有关使用 MySQL Workbench 的信息,请参阅 MySQL Workbench 文档。使用 SSL/TLS 加密客户端与 MySQL 数据库实例的连接,请参阅使用 SSL/TLS 加密客户端与 MySQL 数据库实例的连接

  6. (可选)选择 Test Connection (测试连接) 以确认数据库实例的连接成功。

  7. 选择 Close(关闭)。

  8. Database (数据库) 中选择 Connect to Database (连接到数据库)

  9. Stored Connection (存储连接) 中选择您的连接。

  10. 选择 OK

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

适用于 MySQL 的 AWS JDBC 驱动程序是专为 RDS for MySQL 而设计的客户端驱动程序。原定设置情况下,驱动程序具有针对与 RDS for MySQL 结合使用进行优化的设置。有关驱动程序的更多信息及其完整使用说明,请参阅 AWS JDBC Driver for MySQL GitHub 存储库

驱动程序与 MySQL Connector/J 驱动程序直接兼容。要安装或升级连接器,请将 MySQL connector .jar 文件(位于应用程序 CLASSPATH 中)替换为 AWS JDBC Driver for MySQL .jar 文件,并将连接 URL 前缀从 jdbc:mysql:// 更新为 jdbc:mysql:aws://

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

排除与 MySQL 数据库实例的连接故障

导致新数据库实例连接故障的两个常见原因是:

  • 创建数据库实例时所用的安全组无法授权连接运行 MySQL 应用程序或实用程序的设备或 Amazon EC2 实例。数据库实例必须具有授权进行连接的 VPC 安全组。有关更多信息,请参阅Amazon VPC 和 Amazon RDS

    您可以在安全组中添加或编辑入站规则。对于 Source,选择 My IP。这允许从浏览器中检测到的 IP 地址访问数据库实例。

  • 数据库实例是使用默认端口 3306 创建的,而您公司的防火墙规则不允许公司网络中的设备连接到该端口。要修复此故障,请重新创建使用不同端口的实例。

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