解决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;"/>
相关推荐
myusa217 分钟前
使用阿里云CLI跨地域迁移ECS实例
数据库·阿里云·php
政沅同学30 分钟前
数据库实验报告 系统E-R图设计 2
数据库·sqlserver
PgSheep1 小时前
一文通俗讲解MySQL数据库常见面试题-持续更新
java·数据库·mysql·面试
攻城狮7号1 小时前
Python爬虫第20节-使用 Selenium 爬取小米商城空调商品
开发语言·数据库·爬虫·python·selenium
2501_911121232 小时前
【无标题】
数据库·sql·mysql
Blue.ztl4 小时前
菜鸟之路day31一一MySQL之多表设计
android·数据库·mysql
程序员拂雨8 小时前
MongoDB知识框架
数据库·mongodb
消失在人海中10 小时前
oracle 会话管理
数据库·oracle
Wyc7240910 小时前
JDBC:java与数据库连接,Maven,MyBatis
java·开发语言·数据库
烧瓶里的西瓜皮11 小时前
Go语言从零构建SQL数据库(9)-数据库优化器的双剑客
数据库·sql·golang