增加数据库配置后 initconnect=‘set names utf8mb4’ 仍报错,是因为

源码里 每次会根据 获取的数据库信息判断后, 执行 set names utf8;

在这里插入图片描述

参考mysql 官方文档,解决方案 升级版本:

在这里插入图片描述

升级后,测试 生僻字多表关联查询,不再报错;
在这里插入图片描述

解决后,修改字符集, 部分表 所有列 长度加起来 超过了 65535 字节,也会报错:
在这里插入图片描述

是因为utf8 一般一个字符占用 3个字节,utf8mb4 一个字符 占用4个字节,所以会出现这个情况。

一般只能缩减 字段的长度,保持字段总长度在 16383 个内;(这个长度 不包含 longtext 和text 类型字段);

可以查询 information 库,统计哪些 表是修改字符集后超长的

也可以查询 information 库的 columns 表,汇总哪些 是utf8 哪些是utf8mb4 字符集;等等

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐