RDS for MySQL实例购买完成后,可以先登录到Linux弹性云服务器,在ECS上安装MySQL客户端,然后执行MySQL命令行通过MySQL内网IP连接到实例。本章节向您展示如何使用标准MySQL客户端从ECS实例访问数据库实例。
本章节提供SSL不加密的连接方式,如需使用SSL加密连接,请参见使用MySQL命令行内网连接实例。
准备工作
- 注册华为账号并开通华为云。
- 完成实名认证。
- 购买实例前需要确保账户有足够金额,请参见账户充值。
- 如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予RDS权限。
操作步骤
步骤1:购买RDS for MySQL实例
- 进入购买云数据库RDS页面。
- 在“快速购买”页面,配置实例基础参数。
图1 基础配置
表1 基础配置
参数 |
示例 |
参数说明 |
计费模式 |
按需计费 |
实例的计费模式。
- 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于需求量长期稳定的成熟业务。
- 按需计费:一种后付费模式,即先使用再付费,按照云数据库RDS实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。
|
区域 |
华北-北京四 |
资源所在的区域。
不同区域内的产品内网不互通,且创建后不能更换,请谨慎选择。 |
引擎版本 |
8.0 |
数据库版本。 |
实例类型 |
主备 |
实例的架构类型。
主备:采用一主一备的经典高可用架构,主备实例的每个节点的规格保持一致。备机提高了实例的可靠性,创建主机的过程中,会同步创建备机,备机创建成功后,用户不可见。 |
性能规格 |
通用型 2U4GB |
实例的CPU和内存规格。 |
磁盘存储 |
SSD云盘 100GB |
实例的存储空间。
您申请的存储空间会有必要的文件系统开销,这些开销包括索引节点和保留块,以及数据库运行必需的空间。 |
磁盘加密 |
不加密 |
选择加密后会提高数据安全性,但对数据库读写性能有5%的性能影响,请按照您的使用策略进行选择。
如果使用共享KMS密钥,对应的CTS事件为createdatakey和decrydatakey,仅密钥所有者能够感知到该事件。 |
- 实例更多配置。
图2 更多配置
表2 更多配置
参数 |
示例 |
参数说明 |
虚拟私有云 |
default_vpc |
实例所在的虚拟网络环境,可以对不同业务进行网络隔离。
如果没有可选的虚拟私有云,单击“创建虚拟私有云”,完成创建后单击 。具体操作请参见创建虚拟私有云和子网。 |
子网 |
default_subnet |
通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。 |
安全组 |
default |
安全组限制实例的安全访问规则,加强RDS for MySQL与其他服务间的安全访问。 |
企业项目 |
default |
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
更多关于企业项目的信息,请参见《企业管理用户指南》。 |
表名大小写 |
不区分大小写 |
表名是否区分大小写。目标实例与原实例表名大小写设置不一致,可能会导致恢复失败。
已创建完成的RDS for MySQL 8.0实例不支持设置表名大小写敏感。 |
购买数量 |
1 |
批量创建实例的个数。 |
- 配置完成后,单击“立即购买”。
- 查看购买成功的RDS for MySQL实例。
图3 购买成功
步骤3:测试连通性并安装MySQL客户端
- 登录ECS实例,请参见《弹性云服务器用户指南》中“通过VNC登录Linux ECS”。
- 在RDS“实例管理”页面,查看内网地址和数据库端口。
图7 连接信息
- 在ECS登录后页面,测试是否可以正常连接到在2中获取的内网地址的端口。
curl -kv 内网地址:端口
示例:
curl -kv 192.168.0.4:3306
- 如果可以通信,说明网络正常,继续执行4。
图8 网络正常
- 如果无法通信,请检查安全组规则。
- 查看ECS安全组的出方向规则,默认出方向全部放通。
如果没有全部放通,需要将RDS实例的内网IP地址和端口添加到出方向规则。
图9 ECS的安全组
- 查看RDS的安全组的入方向规则,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参见设置安全组规则。
- 在ECS上,执行以下命令下载Linux系统的MySQL客户端安装包。
建议您下载的MySQL客户端版本高于已创建的RDS实例中数据库版本。
- 执行以下命令安装MySQL客户端。
步骤4:使用命令行连接实例(SSL不加密)
- 在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。 |
- 出现如下提示时,输入数据库账号对应的密码。
Enter password:
图11 连接成功
- 创建数据库db_test。
create database db_test;
图12 创建库
- 创建表t_test。
create table t_test(id int(4), name char(20), age int(4));
图13 创建表
- 向表中插入一条数据。
insert into t_test(id, name, age) values(1, 'zhangsan', 30);
图14 插入数据
- 查询表数据。
select * from t_test;
图15 查询数据
- 更新表中id为1的age字段值。
update t_test set age=31 where id=1;
图16 更新数据
- 查询更新后的表数据。
select * from t_test where id=1;
图17 查询更新后数据
- 删除表中id为1的数据。
delete from t_test where id=1;
图18 删除表数据
- 删除表结构。
drop table t_test;
图19 删除表结构
- 删除数据库。
drop database db_test;
图20 删除数据库
常见问题
如果密码忘记了怎么办?
在“实例管理”页面,选择指定的实例,选择“更多 > 重置密码”,输入新密码。
连接失败的常见报错
- [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客户端连接实例后会自动断开。
- ERROR 1045 (28000): Access denied for user 'root'@'192.168.0.30' (using password: YES)
排除是否密码错误问题,确认该主机是否有连接数据库实例的权限,以及RDS for MySQL客户端和实例VIP是否可以连通。具体请参见RDS for MySQL实例无法访问。
- ERROR 1226 (42000): User 'test' has exceeded the 'max_user_connections' resource (current value:10)
排查是否限制了实例的连接数,导致连接失败。具体请参见RDS for MySQL实例无法访问。
- ERROR 1129 (HY000): Host '192.168.0.111' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
排查是否由于RDS for MySQL客户端连接数据库的失败次数(不包括密码错误),超过了max_connection_errors的值,导致连接失败。具体请参见RDS for MySQL实例无法访问。
更多连接失败的排查方法,请参见RDS实例连接失败怎么办。
后续操作
登录实例后,您可以创建数据库,进行数据迁移等操作,具体请参见: