连接到运行 MySQL 数据库引擎的数据库实例
在与运行 MySQL 数据库引擎的数据库实例进行连接之前,您必须首先创建数据库实例。有关信息,请参阅 创建 Amazon RDS 数据库实例。Amazon RDS 预配置数据库实例后,您就可以使用标准 MySQL 客户端应用程序或实用程序与该实例连接。在连接字符串中,指定数据库实例终端节点中的 DNS 地址作为主机参数,并指定数据库实例终端节点中的端口号作为端口参数。
要对您的 RDS 数据库实例进行身份验证,可以使用一种适用于 MySQL 的身份验证方法和 Amazon Identity and Access Management(IAM)数据库身份验证:
要了解如何使用一种适用于 MySQL 的身份验证方法对 MySQL 进行身份验证,请参阅 MySQL 文档中的身份验证方法
。 要了解如何使用 IAM 数据库身份验证方法对 MySQL 进行身份验证,请参阅 适用于 MariaDB、MySQL 和 PostgreSQL 的 IAM 数据库身份验证。
可使用 MySQL 命令行客户端等工具连接 MySQL 数据库实例。有关使用 MySQL 命令行客户端的更多信息,请参阅 MySQL 文档中的 mysql - MySQL 命令行客户端
大多数 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
要从 Amazon VPC 外部连接到数据库实例,数据库实例必须可公开访问,必须使用数据库实例安全组的入站规则授予访问权限,并且必须满足其他要求。有关更多信息,请参阅无法连接到 Amazon RDS 数据库实例。
您可以针对与 MySQL 数据库实例的连接使用安全套接字层 (SSL) 或传输层安全性协议 (TLS) 加密。有关信息,请参阅 将 SSL/TLS 与 MySQL 数据库实例结合使用。如果您要使用 Amazon 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。
要查找数据库实例的连接信息,您可以使用Amazon Web Services Management Console、Amazon CLI describe-db-instances 命令,或 Amazon RDS API DescribeDBInstances 操作列出其详细信息。
在 Amazon Web Services Management Console 中查找数据库实例的连接信息
登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 数据库 以显示数据库实例的列表。
-
选择 MySQL 数据库实例名称以显示其详细信息。
-
在连接和安全性选项卡上,复制终端节点。另请注意端口号。您需要终端节点和端口号才能连接到数据库实例。
-
如果需要查找主用户名,请选择 Configuration (配置) 选项卡并查看 Master username (主用户名) 值。
要使用 Amazon 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 -umymasteruser
-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 连接
若要从 MySQL Workbench 连接
-
在下载 MySQL Workbench
页面下载并安装 MySQL Workbench。 -
打开 MySQL Workbench。
-
从 Database (数据库) 中选择 Manage Connections (管理连接)。
-
在 Manage Server Connections (管理服务器连接) 窗口中,选择 New (新建)。
-
在 Connect to Database (连接到数据库) 窗口中,输入以下信息:
-
Stored Connection (存储连接) – 输入连接的名称,例如
MyDB
。 -
Hostname (主机名) – 输入数据库实例的终端节点。
-
Port (端口) – 输入数据库实例使用的端口。
-
Username (用户名) – 输入有效数据库用户(如主用户)的用户名。
-
Password (密码) – (可选)选择 Store in Vault (存储在文件库中),然后输入并保存用户的密码。
窗口看上去类似下面这样:
您可以使用 MySQL Workbench 的功能来自定义连接。例如,您可以使用 SSL 选项卡配置 SSL/TLS 连接。有关使用 MySQL Workbench 的信息,请参阅 MySQL Workbench 文档
。使用 SSL/TLS 加密客户端与 MySQL 数据库实例的连接,请参阅使用 SSL/TLS 加密客户端与 MySQL 数据库实例的连接。 -
-
(可选)选择 Test Connection (测试连接) 以确认数据库实例的连接成功。
-
选择 Close(关闭)。
-
从 Database (数据库) 中选择 Connect to Database (连接到数据库)。
-
从 Stored Connection (存储连接) 中选择您的连接。
-
选择 OK。
连接适用于 MySQL 的 Amazon Web Services JDBC 驱动程序
适用于 MySQL 的 Amazon JDBC 驱动程序是专为 RDS for MySQL 而设计的客户端驱动程序。原定设置情况下,驱动程序具有针对与 RDS for MySQL 结合使用进行优化的设置。有关驱动程序的更多信息及其完整使用说明,请参阅 Amazon JDBC Driver for MySQL GitHub 存储库
驱动程序与 MySQL Connector/J 驱动程序直接兼容。要安装或升级连接器,请将 MySQL connector .jar 文件(位于应用程序 CLASSPATH 中)替换为 Amazon JDBC Driver for MySQL .jar 文件,并将连接 URL 前缀从 jdbc:mysql://
更新为 jdbc:mysql:aws://
。
适用于 MySQL 的 Amazon JDBC 驱动程序支持 IAM 数据库身份验证。有关更多信息,请参阅适用于 MySQL 的 Amazon JDBC 驱动程序 GitHub 存储库中的 Amazon IAM 数据库身份验证
排除与 MySQL 数据库实例的连接故障
导致新数据库实例连接故障的两个常见原因是:
-
创建数据库实例时所用的安全组无法授权连接运行 MySQL 应用程序或实用程序的设备或 Amazon EC2 实例。数据库实例必须具有授权进行连接的 VPC 安全组。有关更多信息,请参阅Amazon VPC 和 Amazon RDS。
您可以在安全组中添加或编辑入站规则。对于 Source,选择 My IP。这允许从浏览器中检测到的 IP 地址访问数据库实例。
-
数据库实例是使用默认端口 3306 创建的,而您公司的防火墙规则不允许公司网络中的设备连接到该端口。要修复此故障,请重新创建使用不同端口的实例。
有关连接问题的更多信息,请参阅无法连接到 Amazon RDS 数据库实例。