MySql存储字符表情修改修改字符集为“utf8mb4”

问题:存储emoji表情报错时报(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')的错误

分析: 

普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点
Mysql 版本的限制,Mysql 5.5.3之前的版本,支持的utf8为3字节的,Mysql 5.5.3之后的版本支持utf8mb4

解决方案:

  修改MySql字符集为utf8mb4

修改MySql步骤

  1、找到Mysql配置文件,通过查看MySql服务的启动命令来确认配置文件

    

 

 

   2、打开配置文件,分别在【client】【mysql】【mysqld】节点下设置对应参数如下:

    

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

  3、重启Mysql服务,可以直接在服务里右键重启,也可用以下命令重启:

service mysqld restart
或
service mysql restart

  4、将数据库、表、对应字段字符集都修改为 utf8mb4,参与以下命令

-- 查看数据表的编码格式
show create table <表名>;

--修改数据库的编码格式
alter database <数据库名> character set utf8mb4;

--修改数据表格编码格式1
alter table <表名> character set utf8mb4;

--修改字段编码格式
alter table <表名> change <字段名> <字段名> <类型> character set utf8mb4;

  5、修改程序连接串的字符集配置

 

posted @ 2021-09-17 11:46  zwisedow  阅读(1599)  评论(0)    收藏  举报