解决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;"/>
相关推荐
蓝象_2 分钟前
docker安装配置mysql
mysql·docker·容器
喜欢踢足球的老罗6 分钟前
认证与授权:详解大型系统中用户中心与RBAC的共生关系
数据库·rbac
zhaomx198924 分钟前
Spring 事务管理 Transaction rolled back because it has been marked as rollback-only
数据库·spring
l1t1 小时前
利用DeepSeek优化SQLite求解数独SQL用于DuckDB
开发语言·数据库·sql·sqlite·duckdb
lcanfly2 小时前
Mysql作业5
android·数据库·mysql
rit84324992 小时前
在Ubuntu上配置Nginx实现开机自启功能
数据库·nginx·ubuntu
海绵啵啵呀2 小时前
SQL plus中解决上下键找历史命令的工具--rlwrap命令行工具
数据库·sql
Elastic 中国社区官方博客2 小时前
使用 Mastra 和 Elasticsearch 构建具有语义回忆功能的知识 agent
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
老邓计算机毕设2 小时前
SSM危险品运输车辆信息管理系统b2z1o(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架