解决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;"/>
相关推荐
q***81641 小时前
MySQL:数据查询-limit
数据库·mysql
p***92481 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
数据库·mysql
JIngJaneIL2 小时前
社区互助|社区交易|基于springboot+vue的社区互助交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·社区互助
晚风吹人醒.2 小时前
缓存中间件Redis安装及功能演示、企业案例
linux·数据库·redis·ubuntu·缓存·中间件
Y***98513 小时前
DVWA靶场通关——SQL Injection篇
数据库·sql
Yawesh_best3 小时前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
蒋士峰DBA修行之路3 小时前
实验二十八 SQL PATCH调优
数据库·sql·gaussdb
I***t7163 小时前
一条sql 在MySQL中是如何执行的
数据库·sql·mysql
一 乐4 小时前
应急知识学习|基于springboot+vue的应急知识学习系统(源码+数据库+文档)
数据库·vue.js·spring boot
vx_dmxq2114 小时前
【PHP考研互助系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·考研·微信小程序·小程序·php