数据库配置字符集为utf8mb4 ,且配置文件增加 initconnect='set names utf8mb4' 后仍然报错

增加数据库配置:效果是在没次sql执行前 执行set names utf8mb4 ;

执行set names utf8mb4  效果 是: 三个环境变量 的值  配置为 utf8mb4;如下图

 initconnect='set names utf8mb4' 

配置后,其实 数据库配置 是生效的,只不过是被 jdbc 的初始化sql 覆盖掉了:

如数据库 日志: 同一个链接 如 102 :先执行的 set names utf8mb4 是数据库配置执行的,后面又执行了 set names utf8 是jdbc链接执行的,所以覆盖了 数据库的配置导致没生效;所以 查询字符集utf8mb4 还是报错

执行set names utf8 源码 包位置:

执行set names utf8 源码 代码 位置:每次执行sql 之前都会去判断  useutf8mb4 为true 或false  来预执行 对应的配置sql;

扫描二维码关注公众号,回复: 10278841 查看本文章

目前还不知道怎么解决这个情况,大佬知道可以告知一下; (主要是this.io.serverCharsetIndex 不在CharsetMapping 中)

发布了301 篇原创文章 · 获赞 197 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/boss_way/article/details/103868377