

# 连接到 MySQL 数据库实例
<a name="USER_ConnectToInstance"></a>

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

要对您的 RDS 数据库实例进行身份验证，可以使用一种适用于 MySQL 的身份验证方法和 AWS Identity and Access Management（IAM）数据库身份验证：
+ 要了解如何使用一种适用于 MySQL 的身份验证方法对 MySQL 进行身份验证，请参阅 MySQL 文档中的[身份验证方法](https://dev.mysql.com/doc/internals/en/authentication-method.html)。
+ 要了解如何使用 IAM 数据库身份验证方法对 MySQL 进行身份验证，请参阅 [适用于 MariaDB、MySQL 和 PostgreSQL 的IAM 数据库身份验证](UsingWithRDS.IAMDBAuth.md)。

可使用 MySQL 命令行客户端等工具连接 MySQL 数据库实例。有关使用 MySQL 命令行客户端的更多信息，请参阅 MySQL 文档中的 [mysql - MySQL 命令行客户端](https://dev.mysql.com/doc/refman/8.0/en/mysql.html)。您可以使用 MySQL Workbench 这款基于 GUI 的应用程序进行连接。有关更多信息，请参阅[下载 MySQL Workbench](http://dev.mysql.com/downloads/workbench/) 页。有关安装 MySQL（包括 MySQL 命令行客户端）的信息，请参阅[安装和升级 MySQL](https://dev.mysql.com/doc/refman/8.0/en/installing.html)。

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

您可以针对与 MySQL 数据库实例的连接使用安全套接字层 (SSL) 或传输层安全性协议 (TLS) 加密。有关信息，请参阅[Amazon RDS 上 MySQL 数据库实例的 SSL/TLS 支持](MySQL.Concepts.SSLSupport.md)。如果您要使用 AWS Identity and Access Management (IAM) 数据库身份验证，请确保使用 SSL/TLS 连接。有关信息，请参阅 [适用于 MariaDB、MySQL 和 PostgreSQL 的IAM 数据库身份验证](UsingWithRDS.IAMDBAuth.md)。

您也可以从 Web 服务器连接到数据库实例。有关更多信息，请参阅“[教程：创建 Web 服务器和 Amazon RDS 数据库实例](TUT_WebAppWithRDS.md)”。

**注意**  
有关连接到 MariaDB 数据库实例的信息，请参阅[连接到 MariaDB 数据库实例](USER_ConnectToMariaDBInstance.md)。

要查找并连接到 RDS for MySQL 数据库实例，请参阅以下主题。

**Topics**
+ [查找 RDS for MySQL 数据库实例的连接信息](USER_ConnectToInstance.EndpointAndPort.md)
+ [安装 MySQL 命令行客户端](mysql-install-cli.md)
+ [从 MySQL 命令行客户端连接（未加密）](USER_ConnectToInstance.CLI.md)
+ [从 MySQL Workbench 连接](USER_ConnectToInstance.MySQLWorkbench.md)
+ [使用适用于 MySQL 的 AWS JDBC 驱动程序、AWS Python 驱动程序和 AWS ODBC 驱动程序连接到 RDS for MySQL](MySQL.Connecting.Drivers.md)
+ [排除与 MySQL 数据库实例的连接故障](USER_ConnectToInstance.Troubleshooting.md)

# 查找 RDS for MySQL 数据库实例的连接信息
<a name="USER_ConnectToInstance.EndpointAndPort"></a>

数据库实例的连接信息包括其端点、端口和有效数据库用户，如主用户。例如，假设端点值为 `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 管理控制台、AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令，或 Amazon RDS API [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作列出其详细信息。

## 控制台
<a name="USER_ConnectToInstance.EndpointAndPort.Console"></a>

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

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

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

1. 在**连接和安全性**选项卡上，复制端点。另请注意端口号。您需要端点和端口号才能连接到数据库实例。  
![\[Amazon RDS 控制台中数据库实例的端点和端口。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/endpoint-port.png)

1. 如果需要查找主用户名，请选择 **Configuration (配置)** 选项卡并查看 **Master username (主用户名)** 值。

## AWS CLI
<a name="USER_ConnectToInstance.EndpointAndPort.CLI"></a>

要使用 AWS CLI 查找 MySQL 数据库实例的相关连接信息，请运行 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令。在调用中，查询数据库实例 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"
    ]
]
```

## RDS API
<a name="USER_ConnectToInstance.EndpointAndPort.API"></a>

要使用 Amazon RDS API 查找数据库实例的连接信息，请调用 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作。在输出中，找到端点地址、端点端口和主用户名的值。

# 安装 MySQL 命令行客户端
<a name="mysql-install-cli"></a>

大多数 Linux 发行版包括 MariaDB 客户端，而不是 Oracle MySQL 客户端。要在 Amazon Linux 2023 上安装 MySQL 命令行客户端，请运行以下命令：

```
sudo dnf install mariadb105
```

要在 Amazon Linux 2 上安装 MySQL 命令行客户端，请运行以下命令：

```
sudo yum install mariadb
```

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

```
apt-get install mariadb-client
```

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

```
mysql --version
```

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

```
man mysql
```

# 从 MySQL 命令行客户端连接（未加密）
<a name="USER_ConnectToInstance.CLI"></a>

**重要**  
仅当客户端和服务器位于同一 VPC 中，并且网络受信任时，才会使用未加密的 MySQL 连接。有关使用加密连接的信息，请参阅 [从 MySQL 命令行客户端使用 SSL/TLS 连接到 Amazon RDS 上的 MySQL 数据库实例（已加密）](USER_ConnectToInstanceSSL.CLI.md)。

要使用 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.28 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
```

# 从 MySQL Workbench 连接
<a name="USER_ConnectToInstance.MySQLWorkbench"></a>

**若要从 MySQL Workbench 连接**

1. 在[下载 MySQL Workbench](http://dev.mysql.com/downloads/workbench/) 页面下载并安装 MySQL Workbench。

1. 打开 MySQL Workbench。  
![\[MySQL Workbench 中的欢迎屏幕。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/mysql-workbench-main.png)

1. 从 **Database (数据库)** 中选择 **Manage Connections (管理连接)**。

1. 在 **Manage Server Connections (管理服务器连接)** 窗口中，选择 **New (新建)**。

1. 在 **Connect to Database (连接到数据库)** 窗口中，输入以下信息：
   + **Stored Connection (存储连接)** – 输入连接的名称，例如 **MyDB**。
   + **Hostname (主机名)** – 输入数据库实例的端点。
   + **Port (端口)** – 输入数据库实例使用的端口。
   + **Username (用户名)** – 输入有效数据库用户（如主用户）的用户名。
   + **Password (密码)** – （可选）选择 **Store in Vault (存储在文件库中)**，然后输入并保存用户的密码。

   窗口看上去类似下面这样：  
![\[MySQL Workbench 中的“管理服务器连接”窗口。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/mysql-workbench-connect.png)

   您可以使用 MySQL Workbench 的功能来自定义连接。例如，您可以使用 **SSL** 选项卡配置 SSL/TLS 连接。有关使用 MySQL Workbench 的信息，请参阅 [MySQL Workbench 文档](https://dev.mysql.com/doc/workbench/en/)。使用 SSL/TLS 加密客户端与 MySQL 数据库实例的连接，请参阅[使用 SSL/TLS 加密客户端与 Amazon RDS 上 MySQL 数据库实例的连接](mysql-ssl-connections.md)。

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

1. 选择**关闭**。

1. 从 **Database (数据库)** 中选择 **Connect to Database (连接到数据库)**。

1. 从 **Stored Connection (存储连接)** 中选择您的连接。

1. 选择 **OK**。

# 使用适用于 MySQL 的 AWS JDBC 驱动程序、AWS Python 驱动程序和 AWS ODBC 驱动程序连接到 RDS for MySQL
<a name="MySQL.Connecting.Drivers"></a>

使用适用于 MySQL 的 AWS JDBC 驱动程序、AWS Python 驱动程序和 AWS ODBC 驱动程序连接到 RDS for MySQL 数据库实例。有关更多信息，请参阅以下主题。

**Topics**
+ [使用 Amazon Web Services（AWS）JDBC 驱动程序连接到 RDS for MySQL](#MySQL.Connecting.JDBCDriver)
+ [使用 Amazon Web Services（AWS）Python 驱动程序连接到 RDS for MySQL](#MySQL.Connecting.PythonDriver)
+ [使用适用于 MySQL 的 Amazon Web Services（AWS）ODBC 驱动程序连接到 RDS for MySQL](#USER_ConnectToInstance.ODBCDriverMySQL)

## 使用 Amazon Web Services（AWS）JDBC 驱动程序连接到 RDS for MySQL
<a name="MySQL.Connecting.JDBCDriver"></a>

Amazon Web Services (AWS) JDBC 驱动程序已设计为高级 JDBC 包装器。此包装器是对现有 JDBC 驱动程序各项功能的补充和扩展。该驱动程序与社区 MySQL Connector/J 驱动程序和社区 MariaDB Connector/J 驱动程序兼容。

要安装 AWS JDBC 驱动程序，请附加 AWS JDBC 驱动程序.jar 文件（位于应用程序 `CLASSPATH` 中），并保留对相应社区驱动程序的引用。按如下方式更新相应的连接 URL 前缀：
+ `jdbc:mysql://`到 `jdbc:aws-wrapper:mysql://`。
+ `jdbc:mariadb://`到 `jdbc:aws-wrapper:mariadb://`。

有关 AWS JDBC 驱动程序的更多信息及其完整使用说明，请参阅 [Amazon Web Services (AWS) JDBC Driver GitHub 存储库](https://github.com/awslabs/aws-advanced-jdbc-wrapper)。

## 使用 Amazon Web Services（AWS）Python 驱动程序连接到 RDS for MySQL
<a name="MySQL.Connecting.PythonDriver"></a>

Amazon Web Services（AWS）驱动程序设计为高级 Python 包装器。这款包装器是对开源 Psycopg 驱动程序的各项功能的补充和扩展。AWS Python 驱动程序支持 Python 3.8 及更高版本。您可以使用 `pip` 命令和 `psycopg` 开源软件包安装 `aws-advanced-python-wrapper` 程序包。

有关 AWS Python 驱动程序的更多信息及其完整使用说明，请参阅 [Amazon Web Services (AWS) Python 驱动程序 GitHub 存储库](https://github.com/awslabs/aws-advanced-python-wrapper)。

## 使用适用于 MySQL 的 Amazon Web Services（AWS）ODBC 驱动程序连接到 RDS for MySQL
<a name="USER_ConnectToInstance.ODBCDriverMySQL"></a>

适用于 MySQL 的 AWS ODBC 驱动程序是专为实现 RDS for MySQL 的高可用性而设计的客户端驱动程序。该驱动程序可以与 MySQL 连接器/ODBC 驱动程序并存，并且与相同的工作流程兼容。

有关适用于 MySQL 的 AWS ODBC 驱动程序的更多信息及其完整安装和使用说明，请参阅 [Amazon Web Services (AWS) ODBC Driver for MySQL](https://github.com/aws/aws-mysql-odbc) GitHub 存储库。

# 排除与 MySQL 数据库实例的连接故障
<a name="USER_ConnectToInstance.Troubleshooting"></a>

导致新数据库实例连接故障的两个常见原因是：
+ 创建数据库实例时所用的安全组无法授权连接运行 MySQL 应用程序或实用程序的设备或 Amazon EC2 实例。数据库实例必须具有授权进行连接的 VPC 安全组。有关更多信息，请参阅 [Amazon VPC 和 Amazon RDS](USER_VPC.md)。

  您可以在安全组中添加或编辑入站规则。对于 **Source**，选择 **My IP**。这允许从浏览器中检测到的 IP 地址访问数据库实例。
+ 数据库实例是使用默认端口 3306 创建的，而您公司的防火墙规则不允许公司网络中的设备连接到该端口。要修复此故障，请重新创建使用不同端口的实例。

有关连接问题的更多信息，请参阅[无法连接到 Amazon RDS 数据库实例](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。