mysql5.6版本 uft8mb4存储表情的更改记录

前言

 这次对接的美团外卖 发现美团推送过来的订单中有表情符号。这些表情符号的存储问题,再上一个版本中就发现过。为了最小程度的影响程序,是直接在程序在做了表情过滤的。但是发现新增的表情太多了,而且编码也有千奇百怪的,所以这次索性考虑数据库兼容,在开发环境数据库测试完成后,发现utf8编码转换成utf8mb4没有出现担心的乱码问题,以前mysql低版本出现过,所以转换前还是最后能备份数据。

更改过程

1.数据库更改

 对数据库的编码更改我没有使用sql,因为我数据库管理软件使用了navicat。navicat自带了编码修改工具,还是很方便的。
 首先更改数据库编码


image.png

 然后修改对应的列编码 我这里是没有更改表编码的 如果想整体的修改表编码
再多一步表编码修改即可


image.png

这里排序规则选择了utf8mb4_general_ci 一般会从 utf8mb4_general_ci 和 utf8mb4_unicode_ci里选 我的排序要求没有那么高 一般选utf8mb4_general_ci也就可以了

2.数据库连接池配置更改

 数据连接池使用的是druid。要使用utf8mb4要指定编码。这个编码指定比较特殊

String connectionInitSqls = "SET NAMES utf8mb4";
StringTokenizer tokenizer = new StringTokenizer(connectionInitSqls, ";");
druidDataSource.setConnectionInitSqls(Collections.list(tokenizer));//重点设置该参数

配置好数据库和连接池后即可。

你可能感兴趣的:(mysql5.6版本 uft8mb4存储表情的更改记录)