• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

mysql设置utf8mb4字符集

武飞扬头像
qq_37414878
帮助1

由于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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgggjaf
系列文章
更多 icon
同类精品
更多 icon
继续加载