MySQL将utf8字符集升级到utf8mb4以兼容生僻字

先确认当前MySQL版本,MySQL在5.5.3之后才增加了utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode,好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。

select version();

修改MySQL数据库配置文件:

[client]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'

[mysql]
default-character-set = utf8mb4

重启MySQL后查看修改结果:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

使用示例:

--修改数据库字符集
ALTER DATABASE `test` CHARACTER SET = utf8mb4;

--修改表字符集
ALTER TABLE `test` convert to CHARACTER SET utf8mb4;

--修改字段字符集
ALTER TABLE `test` CHANGE COLUMN `name` `name` varchar(12) CHARACTER SET utf8mb4;