字符序命名规则
以字符序对应的字符集名称开头,以 _ci(大小写不敏感)、_cs(大小写敏感)、_bin(按编码值比较,大小写敏感)结尾。
例如:当会话的collation_connection设置为字符序utf8_general_ci时,字符a和字符A是等价的;而当其设置为utf8_bin 时,字符a和字符A是不等价的。
请参考以下示例:
字符集相关 MySQL 命令
show global variables like '%char%'; #查看RDS实例字符集相关参数设置
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; #修改表字符集和字符序
示例如图:
控制台修改字符集参数(character_set_server)的方法
重要
修改参数character_set_server需要重启实例,建议在业务低峰期进行操作。
操作步骤
登录RDS管理控制台。
在页面左上角,选择实例所在地域。
找到目标实例,单击实例ID。
在左侧导航栏中单击参数设置。
在可修改参数页签下查找到character_set_server,单击右侧进行修改并单击确定。
在右上角单击提交参数,在弹出的对话框中单击确定,等待实例重启。
说明该参数修改后,仅对开启高权限账号的实例后来创建的数据库有效,对当前数据库无效。
使用SQL语句修改数据库字符集的方法
语法如下:
修改库:ALTER DATABASE <库名> CHARACTER SET <字符集名称> COLLATE <排序规则名称>;
修改表:ALTER TABLE <表名> CONVERT TO CHARACTER SET <字符集名称> COLLATE <排序规则名称>;
修改一列:ALTER TABLE <表名> MODIFY <列名> <字段类型> CHARACTER SET <字符集名称> COLLATE <排序规则名称>;
示例: 三条sql 分别将库dbsdq、表tt2 、表tt2中的c2列修改为utf8mb4 字符集,命令如下:
alter database dbsdq character set utf8mb4 collate utf8mb4_unicode_ci;
use dbsdq;
alter table tt2 convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table tt2 modify c2 varchar(10) character set utf8mb4 collate utf8mb4_unicode_ci;
说明
修改列时,当前列中的所有行都会立即转化为新的字符集。
alter table会对表加元数据锁(metadata lock)。
如果需要指定字符集,则需要单独修改,否则会跟随默认设置的全局服务器级别字符集。字符集的设置有四级:服务器级、数据库级、表级、字段级。前三种均为默认设置,建议用
SHOW CREATE TABLE tableName;
或SHOW FULL FIELDS FROM tableName;
来检查当前表中字段的字符集设置。
文档内容是否对您有帮助?