解决mysql特殊字符或者Emoji表情插入报错问题
·
文章目录
解决mysql特殊字符或者Emoji表情插入报错问题
原因:
MySQL的utf8编码最多3个字节,Emoji表情或者某些特殊字符是4个字节,所以数据插入不了,需要修改编码。
在MySQL 的"utf8"实际上不是真正的 UTF-8。
"utf8"只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。
MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作"utf8mb4"的字符集,绕过了这个问题。
解决办法:
1. 查看mysql现在的字符集
show variables like 'char%';
2. 修改mysql数据库服务端字符集
在linux服务器上找my.cnf, 一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:
[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'
3. 然后重启mysql服务
service mysql restart
4. 修改数据库中表字符集和字段字符集
- 修改数据库表字符集
alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;
- 修改数据库字段字符集
alter table 表名 modify column 字段 字段类型 character set utf8mb4 collate utf8mb4_bin;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)