关于mysql设置utf8mb4字符集

文章介绍了如何处理MySQL因默认utf8无法存储emoji导致的错误,包括修改my.ini配置文件,设置数据库、表、列的字符集,以及Springboot的数据库连接配置。还提到了工作中可能遇到的问题和解决步骤。
摘要由CSDN通过智能技术生成

由于mysql默认的utf8其实是三个字节,所以如果字段里有emoji表情,就会放不进去数据库,报错形如

Internal Exception: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x94\xA5' for column 'result' at row 1

这样\x一串的提示就是emoji
这就需要设置字符集成utf8mb4指定四个字节

坑人的地方是它需要在各个角落都手动写这个设置,我几个月之前就被这个折腾了一晚上,把库、表、jdbc的链接都改了,但是就是放不进去。这次又遇见结果改了一下列就解决了

这里我把我修改的地方都列出来供参考
1、mysql配置文件:my.ini(如果是linux这个文件的名字不一样,自己搜一下吧)

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
#collation-connection = utf8mb4_unicode_ci
#注意,这个地方的connection改了的话重启直接就打不开数据库了,需要其他办法改,原理未知
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_general_ci '

2、workbench修改、检验
执行:set collation_connection = utf8mb4_general_ci
检验:输入SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
应当得到在这里插入图片描述
3、对于库:在这里插入图片描述
两个小按钮都点进去,应当是
在这里插入图片描述在这里插入图片描述

4、对于表:在这里插入图片描述
点中间的小扳手,进入到在这里插入图片描述
(忽略p站XD)

5、将表中可能放进去emoji的列修改,以前没成功就是这一步没做
还是上一步的界面,点中间cloumn name那个表格,选中之后在图中的下面部分,同样把charset那俩修改成这样的uft8mb4
在这里插入图片描述

(在mysql这个图形化的界面里 改完都记得点右下角apply哈)

6、到这里数据库设置就解决了,Spring boot的设置我感觉不是很关键,不过还是放一下

spring.datasource.url=jdbc:mysql://localhost:3306/库名?useUnicode=true&character_set_server=utf8mb4&serverTimezone=CST&autoReconnect=true

注意:不保证这是最方便的办法,只不过这是我折腾半天之后确定能跑的一套设置,大概率是有多余不必要的修改步骤的——跑起来就行.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值