常见问题

1.RDS MySQL 字符序命名规则与相关命令?

  • 字符序命名规则:以字符序对应的字符集名称开头,以_ci(大小写不敏感)、 _cs(大小写敏感)、 _bin(按编码值比较)结尾。例如:

    当会话的 collation_connction 设置为字符序 utf8_general_ci 时,字符 a 和字符 A 是等价的;而当其设置为 utf8_bin时,字符 a 和字符 A 是不等价的。

  • 字符集相关 Mysql 命令

    • 查看 RDS 实例字符集相关参数设置: show global variables like '%char%';
    • 查看当前会话字符集相关参数设置: show global variables like 'coll%';
    • 查看实例支持的字符集: show character set;
    • 查看实例支持的字符序: show collation;
    • 查看表字符集设置: show create table table_name \G;
    • 查看数据库字符集设置: show create database database_name \G;
    • 查看存储过程字符集设置: show create procedure procedure_name \G 和 show procedure status \G;
    • 修改数据库的字符集: alter database db_name default charset utf8;
    • 创建数据库时指定字符集: create database db_name character set utf8;
    • 修改表字符集和字符序示例: alter table tab_name default charset utf8 collate utf8_general_ci;

2.数据库实例类型有哪些以及它们的特点?

  • 主实例:支持可读可写;可独立存在;提供包年包月和按量付费两种计费方式。
  • 只读实例:仅支持可读;不能独立存在,必须依附于主实例;通过从主实例同步更改的数据,来保持与主实例数据的一致性,但由于数据同步有时延,只读实例和主实例之间可能存在少许数据不一致的情况;只读实例仅提供按量付费的支付方式。
  • 临时实例:支持可读可写;不能独立存在,必须依附于主实例,但不会从主实同步数据,与主实例的数据不一致;48小时有效期内免费使用,过期后自动删除。

3.使用 “CREATE TABLE ... ENGINE = MyISAM” 创建表为什么会失败?

  • 由于 MyISAM 存储引擎本身的设计缺陷可能会导致表损坏的情况,出于性能和安全目的,RDS MySQL仅提供 INNODB 存储引擎的支持,使用其它存储引擎来创建表,都有可能会失败。

4.如何在同一数据中心不同私网的云主机上访问云数据库RDS?

  • 假设用户在某数据中心同时购买了一个RDS实例和一个云主机,分别分配至不同的私有网络网段net1net2, 当云主机需要访问RDS实例时,只需在该数据中心购买一个路由器,并将net1net2 连接到这个路由器上,云主机即可通过 mysql 命令进行登录:

      >>mysql -h 10.168.5.2 -u tester001 -p (回车)
    

    参数说明:

      -h:RDS 实例的私网地址
      -u:RDS 数据库账号,云主机的私网IP必须已添加到该数据库账号的白名单
      -p:账号对应的密码
    

5.如何外网访问云数据库RDS?

  • 假设用户在某数据中心仅购买了一个RDS实例,用户需在不同的地域或华云数据以外的系统上访问该RDS实例时,则需要用户在该数据中心同时购买一个公网IP和路由器,并把公网IP绑定到路由器,为路由器创建转发规则,如下:

路由器创建端口规则

  • 设置完成后,在用户在其他公网主机上通过 mysql 命令进行登录:

      >>mysql -P 1000 -h 120.132.17.121 -u tester001 -p (回车) 
    

    参数说明:

      -P:路由器创建的端口规则中的 “源端口” 
      -h:路由器绑定的公网IP
      -u:RDS 数据库账号,主机的公网IP必须已添加到该数据库账号的白名单
      -p:账号对应的密码
    

6.数据库实例如何迁移和导入?

  • 可利用MySQL工具mysqldump来做数据库的导出和导入,具体参数说明请参考MySQL官方手册

      Usage: mysqldump [OPTIONS] database [tables]
      OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
      OR mysqldump [OPTIONS] --all-databases [OPTIONS]
    
  • 步骤如下:

    • (1)为需要远程备份的数据库创建一个备份数据库实例 A 的专用账号,并赋予 selectlock table 的权限。
    • (2)利用步骤1创建的备份账号和mysqldump工具远程备份源数据库实例 A 需要迁移的数据库,备份至sql文件,例如:

        mysqldump -h 192.168.232.134u huayun -p testdbout > testdb.sql
      
    • (3)连接需要导入的目标数据库实例 B, 创建一个导入数据库的专用账号,并赋予 create 的权限,并创建导入的数据库名。
    • (4)利用步骤3创建的导入账号远程导入步骤2备份得到的文件。例如:
    •   mysql -h 192.168.232.131 -u huayun -p testdbin < testdb.sql
      

7.试用的实例如何转正使用?

  • 用户对该试用实例进行续费操作即可转成包年包月付费方式,详见续费说明。