程序员 Android wordpress php Windows shell apache 开源 Ubuntu 微软 google linux linux命令 mysql centos nginx java HTML5 Firefox Python

让MySQL支持Emoji表情 mysql 5.6

mysql支持Emoji表情,涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集。 mysql 版本 5.6

1 解决方案:将Mysql的编码从utf8转换成utf8mb4。 需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、  复制报错

2 my.cnf

 文件添加

[mysqld]

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET  NAMES utf8mb4'

3 修改需要添加库 表 字段的字符集

修改数据库字符集: 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; 如果只是某个字段需要 只需要修改那个字段的字符集就可以了

4 如果修改以上都不行请查询

mysql> show variables like '%sql_mode%'; 
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.00 sec)

如果是以上结果恭喜你是存储不了的

去设置这个sql_mod 模式(注意这里修改看之后要退出控制台要不然还是看不到效果的,而 且这个配置写my.cnf 重启服务器是不生效的,如果要问为什么请去mysql顾问群)

 mysql> show variables like '%sql_mode%';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.00 sec)

6 做完这些就完成了,让MySQL支持Emoji表情

延伸阅读

评论

3条评论

写评论