解决MySQL不能存储Emoji表情的问题

原因分析

在MySQL 5.5.3之前版本的数据库中,数据库的默认编码是utf8字符集,只支持1-3个字节的字符,也就是只能保存1到3个字节。但现在的emoji表情需要用4个字节才能保存,所以抛出异常。

解决方案

1、将数据表的编码格式设置成utf8mb4_general_ci

sql 复制代码
ALTER TABLE XXX CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

此时数据库已经可以支持emoji表情了

2、修改JDBC链接

sql 复制代码
修改前

jdbc.url=jdbc:mysql:/域名:端口/数据库?useUnicode=true&character_set_server=utf-8

修改后

jdbc.url=jdbc:mysql:/域名:端口/数据库?useUnicode=true&character_set_server=utf8mb4

最后修改druid数据源的配置,增加一行。

bash 复制代码
<property name="connectionInitSqls" value="set names utf8mb4;"/>
相关推荐
SelectDB2 小时前
从 Machine-Readable 到 Agent-Ready:面向智能体的数据库接口演进
大数据·数据库·agent
画江湖Test2 小时前
Redis 块的原理
数据库·redis·缓存·性能优化
流烟默2 小时前
国产数据库CERDB是什么以及服务启停
数据库·cerdb
数据库小学妹2 小时前
关系型数据库核心原理拆解:SQL解析、事务引擎、存储结构全链路分析
数据库·经验分享·sql·数据库架构·dba
海市公约2 小时前
Redis主从复制全量同步七步时序与命令传播机制详解
数据库·redis·缓存·主从复制·高可用架构·全量同步
我是唐青枫3 小时前
Java JdbcTemplate 实战指南:用 Spring 轻量完成数据库增删改查
java·数据库·spring
梓䈑3 小时前
【MySQL】MySQL安装 和 配置
数据库·mysql
小马爱打代码3 小时前
Redis 和 MySQL 双写一致性:延迟双删、读写锁、MQ、Canal 怎么选?
数据库·redis·mysql
数智顾问3 小时前
(133页PPT)数据中心基础设施规划设计(附下载方式)
大数据·数据库·人工智能