一、问题及原因

APP产品想对Emoji进行支持,但发现mysql数据库无法写入表情。原因是我们的mysql数据库默认用的是utf8编码,utf8编码存储时用的是三个字节,但Emoji表情是4个字节,所以导致了数据插入异常。

原因找到了就很好办,mysql5.5.3之后的版本支持utf8mb4编码,这种编码是utf8的升级版,用的是4个字节进行存储。所以需要做的就是把mysql字符集从utf8升级为utf8mb4就行了。

二、升级步骤

1、备份数据库

虽然utf8mb4兼容utf8,但最好还是作个数据库备份。

2、升级mysql版本到5.5.3以上

这个就不说了,根据你的服务器系统做mysql升级。

3、修改服务器上mysql默认编码,修改数据库、表、列的字符集为utf8mb4

修改服务器上mysql配置文件my.conf(如ubuntu为例,一般在/etc/mysql/my.conf):

[client]
#xxx 已有配置
default-character-set = utf8mb4 [mysql]
#xxx 已有配置
default-character-set = utf8mb4 [mysqld]
#xxx 已有配置
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

改完要重启mysql

修改数据库、表、列字符集:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这里看到没有修改列的字符集,因为我试过后发现,改了表的字符集后,表中列的字符集自动修改为utf8mb4了。

改完可以查看一下:

这里要确保红框内变量值是utf8mb4。

可以看到列的字符集已经改过来了。

4、检查列的最大长度及索引

这个就根据情况自己检查调整了。

5、修改客户端连接程序编码

把代码中连接数据库时的字符集设置为utf8mb4即可

参考文章:

1、How to insert utf-8 mb4 character(emoji in ios5) in mysql?

2、https://segmentfault.com/a/1190000000616820

最新文章

  1. iOS 陀螺仪,加速度计
  2. 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s
  3. ORACLE 日常处理办法
  4. [每日菜单]lunch menu for Wednesday, February 24 2016
  5. LTE Module User Documentation(翻译11)——配置用户测量
  6. {Reship}Precision, Accuracy & Recall
  7. Erlang数据类型的表示和实现(4)——boxed 对象
  8. linux挂载硬盘失败,报错!
  9. job不自动运行解决方法
  10. javascript把IP地址转为数值几种方案,来挑战一下效率吧
  11. ios 系统参数用法
  12. 保垒机SSH登录脚本
  13. 初涉JavaScript模式 (5) : 原型模式 【一】
  14. chrome扩展第三方浏览器下载安装
  15. Meta标签中的format-detection属性及含义让IPHONE的数字可以改变颜色
  16. 性能调优之剖析OutOfMemoryError
  17. sublime Text3+emmet(快速开发)
  18. SAP字符串处理
  19. 一小时入门PHP
  20. 开源项目Git地址

热门文章

  1. Activiti之 Exclusive Gateway
  2. iNeedle系统使用注意事项
  3. LeetCode #303. Range Sum Query
  4. delphi 安装.dpk;package
  5. 三、Android学习第三天——Activity的布局初步介绍(转)
  6. C# ADO.NET编写简单的图书馆管理软件
  7. nodemanager execute container fail many times
  8. ssh连接失败,排错经验
  9. HDU 5895 Mathematician QSC(矩阵乘法+循环节降幂+除法取模小技巧+快速幂)
  10. HDU 4630 No Pain No Game 树状数组+离线操作