如何确保RDS for MySQL数据库字符集正确
RDS for MySQL的“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。包括Emoji表情(Emoji是一种特殊的Unicode编码,常见于手机上),和很多不常用的汉字,以及任何新增的Unicode字符等都无法使用Mysql的utf8字符集存储。在2010年MySQL发布了“utf8mb4”的字符集。MySQL在5.5.3之后增加了utf8mb4的编码,兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。
数据管理服务(Data Admin Service,简称DAS)是一款专业的简化数据库管理工具,您可以通过数据管理服务(Data Admin Service,简称DAS)SQL控制台查看数据库和系统的字符集。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
- 在“实例管理”页面,选择目标实例,单击操作列的“登录”,进入数据管理服务数据库登录界面。
您也可以在“实例管理”页面,单击目标实例名称,在页面右上角,单击“登录”,进入数据管理服务数据库登录界面。
- 正确输入数据库用户名和密码,单击“登录”,即可进入您的数据库并进行管理。
- 在顶部菜单栏选择“SQL操作”>“SQL窗口”,打开一个SQL窗口。
- 在“SQL窗口”执行如下SQL查看数据库字符集。
show variables like '%character%';
图1 SQL执行结果
- 在“SQL窗口”执行如下SQL查看数据库的编码。
show variables like 'collation%';
图2 SQL执行结果
- 修改字符集为utf8mb4。
- 执行如下SQL更改数据库字符集。
ALTER DATABASE DATABASE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 执行如下SQL更改表字符集。
- 执行如下SQL更改表中所有字段的字符集。
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- character_set_client、character_set_connection以及character_set_results是客户端的设置。
- character_set_system、character_set_server以及character_set_database是服务器端的设置。
- 服务器端的参数优先级是:character_set_database>character_set_server>character_set_system。
- 执行如下SQL更改数据库字符集。
数据库参数修改 所有常见问题
- 哪些参数设置不合理会导致数据库不可用(RDS for PostgreSQL)
- 如何修改时区
- RDS for MySQL密码过期策略
- 如何修改RDS for MySQL的事务隔离等级
- 如何确保RDS for MySQL数据库字符集正确
- RDS for PostgreSQL是否支持test_decoding插件
- 使用utf8mb4字符集存储emoji表情到RDS for MySQL实例
- 如何在RDS for SQL Server数据库添加ndf文件的路径
- 是否支持使用SQL命令修改全局参数
- RDS for SQL Server字符集排序规则(collation)如何修改
- 云数据库 RDS for MySQL如何设置表名是否区分大小写
- RDS for MySQL支持开启查询缓存吗
- RDS for PostgreSQL修改参数temp_file_limit
more