您的位置:首页 > 数据库 > MySQL

MySQL utf8mb4 字符集,用于存储emoji表情

2017-04-20 09:54 513 查看
最近在做微信相关的项目,其中MySQL 要存储emoji表情,因此发现我们常用的utf8
字符集根本无法存储表情。网上有不少替代方案。本人还是采用了修改MySQL字符集的方案简单快捷。
首先将我们数据库默认字符集由utf8 更改为utf8mb4,对应的表默认字符集也更改为utf8mb4
 已经存储表情的字段默认字符集也做了相应的调整。
SQL 语句如:

[sql] view
plain copy

 print?





# 修改数据库:  

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  

# 修改表:  

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  

# 修改表字段:  

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  

其次修改MySQL配置文件

新增如下参数:

[sql] view
plain copy

 print?





[client]  

default-character-set = utf8mb4  

  

[mysql]  

default-character-set = utf8mb4  

  

[mysqld]  

character-set-client-handshake = FALSE  

character-set-server = utf8mb4  

collation-server = utf8mb4_unicode_ci  

init_connect='SET NAMES utf8mb4'  

最后检查环境变量 和测试 SQL 如下:

[sql] view
plain copy

 print?





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

+--------------------------+--------------------+  

| Variable_name            | Value              |  

+--------------------------+--------------------+  

| character_set_client    | utf8mb4            |  

| character_set_connection | utf8mb4            |  

| character_set_database  | utf8mb4            |  

| character_set_filesystem | binary            |  

| character_set_results    | utf8mb4            |  

| character_set_server    | utf8mb4            |  

| character_set_system    | utf8              |  

| collation_connection    | utf8mb4_unicode_ci |  

| collation_database      | utf8mb4_unicode_ci |  

| collation_server        | utf8mb4_unicode_ci |  

+--------------------------+--------------------+  

 rows in set (0.00 sec)  

说明:MySQL版本必须为5.5.3以上版本,否则不支持字符集utf8mb4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: