数据库配置字符集为utf8mb4 ,且配置文件增加 initconnect='set names utf8mb4' 后仍然报错。解决方案 注意事项
增加数据库配置后initconnect=‘set names utf8mb4’仍报错,是因为源码里 每次会根据 获取的数据库信息判断后, 执行 set names utf8;参考mysql 官方文档,解决方案升级版本:升级后,测试 生僻字多表关联查询,不再报错;解决后,修改字符集, 部分表 所有列 长度加起来 超过了 65535 字节,也会报错:是因为utf8 一般一...
·
增加数据库配置后 initconnect=‘set names utf8mb4’ 仍报错,是因为
源码里 每次会根据 获取的数据库信息判断后, 执行 set names utf8;
参考mysql 官方文档,解决方案 升级版本:
升级后,测试 生僻字多表关联查询,不再报错;
解决后,修改字符集, 部分表 所有列 长度加起来 超过了 65535 字节,也会报错:
是因为utf8 一般一个字符占用 3个字节,utf8mb4 一个字符 占用4个字节,所以会出现这个情况。
一般只能缩减 字段的长度,保持字段总长度在 16383 个内;(这个长度 不包含 longtext 和text 类型字段);
可以查询 information 库,统计哪些 表是修改字符集后超长的
也可以查询 information 库的 columns 表,汇总哪些 是utf8 哪些是utf8mb4 字符集;等等
更多推荐
已为社区贡献1条内容
所有评论(0)