- 场景
客户聊天发送表情,插入mysql报错 - 原因
utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常:
3.解决办法
-
修改数据库,表,字段的编码为utf8mb4
-
注意:mysql5.5+才支持utf8mb4 -
修改my.cnf 或 my.ini
修改my.ini文件
1. 修改my.cnf 或 my.ini
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
修改后重启Mysql
- 修改database/table和column的字符集,进入mysql中,按下述所示进行命令的执行:
修改database的字符集:
ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;