
# 购买并通过MySQL客户端连接RDS for MySQL实例
RDS for MySQL实例购买完成后，可以先登录到Linux弹性云服务器，在ECS上安装MySQL客户端，然后执行MySQL命令行通过MySQL内网IP连接到实例。本章节向您展示如何使用标准MySQL客户端从ECS实例访问数据库实例。
本章节提供SSL不加密的连接方式，如需使用SSL加密连接，请参见[使用MySQL命令行内网连接实例](https://support.huaweicloud.com/usermanual-rds-mysql/rds_mysql_connect_05.html)。
#### 操作流程
| 操作步骤                                                                                                                 | 说明                                                                                                                                                                                                                                                                                                         |
|:---|:---|
| [准备工作]                                                                            | 注册华为账号并开通华为云、实名认证、账户充值，以及对RDS进行精细权限管理。                                                                                                                                                                                                                                                                     |
| [步骤1：购买RDS for MySQL实例] | 选择RDS for MySQL的基础配置、高级配置信息，购买数据库实例。                                                                                                                                                                                                                                                                       |
| [步骤2：购买ECS]                                                                      | 通过MySQL客户端连接数据库实例时，必须先准备一台服务器，在服务器上安装MySQL客户端并执行连接命令。 购买Linux ECS，并确认ECS实例与RDS for MySQL实例在同一区域、同一VPC内。 如果购买了Windows ECS，可以通过MySQL-front连接，请参见[购买并通过MySQL-Front连接RDS for MySQL实例](https://support.huaweicloud.com/qs-rds-mysql/rds_02_0147.html)。 |
| [步骤3：测试连通性并安装MySQL客户端]                                                              | 测试ECS到RDS for MySQL实例内网IP和端口的网络连通性，并在ECS上安装MySQL客户端。                                                                                                                                                                                                                                                       |
| [步骤4：使用命令行连接实例（SSL不加密）]                                                           | 使用命令行通过内网IP和端口连接RDS for MySQL实例。                                                                                                                                                                                                                                                                           |
   
 #### 准备工作
1. [注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-account/account_id_001.html)。
2. 完成实名认证。
   - 个人账号：[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0077914254.html)
   
   - 企业账号：[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0077914253.html)
    
3. 购买实例前需要确保账户有足够金额，请参见[账户充值](https://support.huaweicloud.com/usermanual-billing/bills-topic_30000002.html)。
4. 如果需要对华为云上的资源进行精细管理，请使用统一身份认证服务（Identity and Access Management，简称IAM）创建IAM用户及用户组，并授权，以使得IAM用户获得具体的操作权限，更多操作，请参见[创建用户组、用户并授予RDS权限](https://support.huaweicloud.com/usermanual-rds-mysql/rds_07_0002.html)。
 
#### 操作步骤
#### 步骤1：购买RDS for MySQL实例
1. 进入[购买云数据库RDS页面](https://console.huaweicloud.com/rds/?#/rds/createIns)。
2. 在"快速购买"页面，配置实例基础参数。
   ![](https://support.huaweicloud.com/qs-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
   快速购买实例仅提供必要参数，更多参数配置请参见[自定义购买RDS for MySQL实例](https://support.huaweicloud.com/usermanual-rds-mysql/rds_10_0028.html)。
   下面的配置项仅作为示例，实际购买时根据用户需求选择合适的资源。
   图1基础配置   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002392557773.png)
   表1基础配置 
   | **参数** | **示例**          | **参数说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|:---|
   | 计费模式   | **按需计费**        | 实例的计费模式。 - 包年/包月：一种预付费模式，即先付费再使用，按照订单的购买周期进行结算。购买周期越长，享受的折扣越大。一般适用于需求量长期稳定的成熟业务。  - 按需计费：一种后付费模式，即先使用再付费，按照云数据库RDS实际使用时长计费，秒级计费，按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用，无需提前预置资源，从而降低预置过多或不足的风险。   |
   | 区域     | **华北-北京四**      | 资源所在的区域。 不同区域内的产品内网不互通，且创建后不能更换，请谨慎选择。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 引擎版本   | **8.0**         | 数据库版本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 实例类型   | **主备**          | 实例的架构类型。 主备：采用一主一备的经典高可用架构，主备实例的每个节点的规格保持一致。备机提高了实例的可靠性，创建主机的过程中，会同步创建备机，备机创建成功后，用户不可见。                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 性能规格   | **通用型 2U4GB**   | 实例的CPU和内存规格。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 磁盘存储   | **SSD云盘 100GB** | 实例的存储空间。 您申请的存储空间会有必要的文件系统开销，这些开销包括索引节点和保留块，以及数据库运行必需的空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 磁盘加密   | **不加密**         | 选择加密后会提高数据安全性，但对数据库读写性能有5%的性能影响，请按照您的使用策略进行选择。 如果使用共享KMS密钥，对应的CTS事件为createdatakey和decrydatakey，仅密钥所有者能够感知到该事件。                                                                                                                                                                                                                                                                                                                                                                                                                             |
      
   
3. 实例更多配置。
   图2更多配置   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002358879316.png)
   表2更多配置 
   | **参数** | **示例**               | **参数说明**                                                                                                                                                                                                                                                                                                       |
   |:---|:---|:---|
   | 虚拟私有云  | **default** **_vpc** | 实例所在的虚拟网络环境，可以对不同业务进行网络隔离。 如果没有可选的虚拟私有云，单击"创建虚拟私有云"，完成创建后单击![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247141721.png)。具体操作请参见[创建虚拟私有云和子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013935842.html)。 |
   | 子网     | **default_subnet**   | 通过子网提供与其他网络隔离的、可以独享的网络资源，以提高网络安全性。                                                                                                                                                                                                                                                                             |
   | 安全组    | **default**          | 安全组限制实例的安全访问规则，加强RDS for MySQL与其他服务间的安全访问。                                                                                                                                                                                                                                                                     |
   | 企业项目   | **default**          | 对于已成功关联企业项目的用户，仅需在"企业项目"下拉框中选择目标项目。 更多关于企业项目的信息，请参见[《企业管理用户指南》](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763975.html)。                                                                                                     |
   | 表名大小写  | **不区分大小写**           | 表名是否区分大小写。目标实例与原实例表名大小写设置不一致，可能会导致恢复失败。 已创建完成的RDS for MySQL 8.0实例不支持设置表名大小写敏感。                                                                                                                                                                 |
   | 购买数量   | **1**                | 批量创建实例的个数。                                                                                                                                                                                                                                                                                                     |
      
   
4. 配置完成后，单击"立即购买"。
5. 查看购买成功的RDS for MySQL实例。
   图3购买成功   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212061964.png) 
 
#### 步骤2：购买ECS
1. 进入[弹性云服务器控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn#/ecs/manager/vmList)。
2. 查看是否有Linux ECS。
   - 有Linux ECS，执行[3]。
     ![](https://support.huaweicloud.com/qs-rds-mysql/public_sys-resources/notice_3.0-zh-cn.png)
     ECS镜像是CentOS时，版本号选CentOS 7.4 64bit。
     
   
   - 没有Linux ECS，需要购买ECS，购买时选择Linux操作系统，例如CentOS 7.4 64bit。 由于需要在ECS下载MySQL客户端，因此需要为ECS绑定弹性公网IP（EIP），并且选择与RDS for MySQL实例相同的区域、VPC和安全组，便于RDS for MySQL和ECS网络互通。
     购买Linux弹性云服务器请参考《弹性云服务器用户指南》中"[购买弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)"章节。
     
   
   - 如果只有Windows ECS，可以通过MySQL-front连接，参考[购买并通过MySQL-Front连接RDS for MySQL实例](https://support.huaweicloud.com/qs-rds-mysql/rds_02_0147.html)。
   
   
   图4ECS实例   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247143761.png) 
3. 分别查看ECS的区域和VPC，以及RDS for MySQL实例的区域和VPC。确认ECS实例与RDS for MySQL实例处于同一区域、同一VPC内。
   图5ECS基本信息   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247143793.png)
   图6MySQL概览   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247143789.png)
   - 如果不在同一区域，请重新购买ECS实例。不同区域的云服务之间内网互不相通，无法访问实例。请就近选择靠近您业务的区域，可减少网络时延，提高访问速度。
   
   - 如果不在同一VPC，可以修改ECS的VPC，请参见[切换虚拟私有云](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0504.html)。
    
 
#### 步骤3：测试连通性并安装MySQL客户端
1. 登录ECS实例，请参见《弹性云服务器用户指南》中"[通过VNC登录Linux ECS](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0136.html)"。
2. 在RDS"实例管理"页面，查看内网地址和数据库端口。
   图7连接信息   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212063968.png) 
3. 在ECS登录后页面，测试是否可以正常连接到在[2]中获取的内网地址的端口。
   ```
   curl -kv 内网地址:端口
   ```
   示例：
   ```
   curl -kv 192.168.0.4:3306
   ```
   - 如果可以通信，说明网络正常，继续执行[4]。
     图8网络正常   
     ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002288013168.png) 
   
   - 如果无法通信，请检查安全组规则。
     - 查看ECS安全组的出方向规则，默认出方向全部放通。
       如果没有全部放通，需要将RDS实例的内网IP地址和端口添加到出方向规则。
       图9ECS的安全组   
       ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247223861.png) 
     
     - 查看RDS的安全组的入方向规则，需要将ECS实例的私有IP地址和端口添加到入方向规则，具体操作请参见[设置安全组规则](https://support.huaweicloud.com/usermanual-rds-mysql/rds_11_0009.html)。
      
    
4. 在ECS上，执行以下命令下载Linux系统的MySQL客户端安装包。
   - [8.0版本安装包](https://dev.mysql.com/get/mysql-community-client-8.0.28-1.el6.x86_64.rpm)：
     ```
     wget https://dev.mysql.com/get/mysql-community-client-8.0.28-1.el6.x86_64.rpm
     ```
     
   
   - [5.7版本安装包](https://dev.mysql.com/get/mysql-community-client-5.7.38-1.el6.x86_64.rpm)：
     ```
     wget https://dev.mysql.com/get/mysql-community-client-5.7.38-1.el6.x86_64.rpm
     ```
     
   
   
   ![](https://support.huaweicloud.com/qs-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
   建议您下载的MySQL客户端版本高于已创建的RDS实例中数据库版本。
   
5. 执行以下命令安装MySQL客户端。
   - 8.0版本：
     ```
     rpm -ivh --nodeps mysql-community-client-8.0.28-1.el6.x86_64.rpm
     ```
     图10安装客户端   
     ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002288012088.png) 
   
   - 5.7版本：
     ```
     rpm -ivh --nodeps mysql-community-client-5.7.38-1.el6.x86_64.rpm
     ```
     
   
   
   ![](https://support.huaweicloud.com/qs-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
   - 如果安装过程中报conflicts，可增加replacefiles参数重新安装，如下：
     ```
     rpm -ivh --replacefiles mysql-community-client-8.0.28-1.el6.x86_64.rpm
     ```
     
   
   
   
   - 如果安装过程中提示需要安装依赖包，可增加nodeps参数重新安装，如下：
     ```
     rpm -ivh --nodeps mysql-community-client-8.0.28-1.el6.x86_64.rpm
     ```
     
     
 
#### 步骤4：使用命令行连接实例（SSL不加密）
1. 在ECS上执行以下命令连接RDS for MySQL实例。
   ```
   mysql -h <host> -P <port> -u <userName> -p
   ```
   示例：
   ```
   mysql -h 192.168.6.144 -P 3306 -u root -p
   ```
   表3参数说明 
   | **参数**         | **示例**            | **参数说明**                                              |
   |:---|:---|:---|
   | \<*host*\>     | **192.168.6.144** | 在[2]中获取的内网地址。         |
   | *\<port\>*     | **3306**          | 在[2]中获取的数据库端口，默认3306。 |
   | \<*userName*\> | **root**          | 管理员账号root。                                            |
      
   
2. 出现如下提示时，输入数据库账号对应的密码。
   ```
   Enter password:
   ```
   图11连接成功   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247223865.png) 
3. 创建数据库**db_test** 。
   ```
   create database db_test;
   ```
   图12创建库   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212223748.png) 
4. 创建表**t_test** 。
   ```
   create table t_test(id int(4), name char(20), age int(4));
   ```
   图13创建表   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212063972.png) 
5. 向表中插入一条数据。
   ```
   insert into t_test(id, name, age) values(1, 'zhangsan', 30);
   ```
   图14插入数据   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247223857.png) 
6. 查询表数据。
   ```
   select * from t_test;
   ```
   图15查询数据   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212063996.png) 
7. 更新表中**id** 为1的**age** 字段值。
   ```
   update t_test set age=31 where id=1;
   ```
   图16更新数据   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247223853.png) 
8. 查询更新后的表数据。
   ```
   select * from t_test where id=1;
   ```
   图17查询更新后数据   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212063984.png) 
9. 删除表中**id** 为1的数据。
   ```
   delete from t_test where id=1;
   ```
   图18删除表数据   
   ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212063980.png) 
10. 删除表结构。
    ```
    drop table t_test;
    ```
    图19删除表结构   
    ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002212223760.png) 
11. 删除数据库。
    ```
    drop database db_test;
    ```
    图20删除数据库   
    ![](https://support.huaweicloud.com/qs-rds-mysql/zh-cn_image_0000002247223841.png) 
 
#### 常见问题
#### 如果密码忘记了怎么办？
在"实例管理"页面，选择指定的实例，选择"更多 \> 重置密码"，输入新密码。
#### 连接失败的常见报错
- \[Warning\] Access denied for user 'username'@'yourIp' (using password: NO) 连接RDS for MySQL实例时出现该报错，请检查用户名或密码是否正确。
  
- \[Warning\] Access denied for user 'username'@'yourIp' (using password: YES) 连接RDS for MySQL实例时出现该报错，请检查用户名或密码是否正确。
  
- ERROR 2013：Lost connection to MySQL server during query 连接超时参数"wait_timeout"和"interactive_timeout"设置过小，RDS for MySQL会自动断开超时的空连接。具体请参见[MySQL客户端连接实例后会自动断开](https://support.huaweicloud.com/trouble-rds-mysql/rds_12_0014.html)。
  
- ERROR 1045 (28000): Access denied for user 'root'@'192.168.0.30' (using password: YES) 排除是否密码错误问题，确认该主机是否有连接数据库实例的权限，以及RDS for MySQL客户端和实例VIP是否可以连通。具体请参见[RDS for MySQL实例无法访问](https://support.huaweicloud.com/trouble-rds-mysql/rds_12_0010.html)。
  
- ERROR 1226 (42000): User 'test' has exceeded the 'max_user_connections' resource (current value:10) 排查是否限制了实例的连接数，导致连接失败。具体请参见[RDS for MySQL实例无法访问](https://support.huaweicloud.com/trouble-rds-mysql/rds_12_0010.html)。
  
- ERROR 1129 (HY000): Host '192.168.0.111' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 排查是否由于RDS for MySQL客户端连接数据库的失败次数(不包括密码错误)，超过了max_connect_errors的值，导致连接失败。具体请参见[RDS for MySQL实例无法访问](https://support.huaweicloud.com/trouble-rds-mysql/rds_12_0010.html)。
  
更多连接失败的排查方法，请参见[RDS实例连接失败怎么办](https://support.huaweicloud.com/rds-mysql_faq/rds_faq_0218.html)。
#### 后续操作
登录实例后，您可以创建数据库，进行数据迁移等操作，具体请参见：
- [通过界面可视化创建MySQL数据库](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0019.html)
- [通过调用API创建MySQL数据库](https://support.huaweicloud.com/api-rds/rds_06_0007.html)
- [通过DAS管理MySQL数据库](https://support.huaweicloud.com/usermanual-das/das_04_0031.html)
- [将数据迁移到云上RDS for MySQL](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0001_03.html)
 
