关于`Can't initialize character set XXXX`的解决思路,求指导

发布于 2022-09-05 01:46:44 字数 721 浏览 21 评论 0

当初拿thinkphp5写了一个项目,为了搞定emoji的问题,数据库字符集用了utf8mb4,在当时的服务器上跑的好好的。最近由于一些原因需要将整个系统转移到新的服务器上。但是当导入原有数据库,系统部署上去之后,试图运行却翻来覆去提示Can't initialize character set utf8mb4。。
我目前已经做过的一些尝试(虽然我现在还没处理好,但是一些思路我觉得其他人是可以借鉴的)

  1. 检查自己php系统数据库连接信息,正常

  2. 检查服务器版本,最开始发现装上的是5.5.2,而支持utf8mb4的mysql版本需求是>=5.5.3,升级之后,问题依旧

  3. 修改my.cnf使utf8mb4变为连接默认字符集(可以参考这篇文章),问题依旧

  4. 尝试服务器端mysql client跑SET NAMES utf8mb4,成功在mysql客户端内运行,但是问题依旧

  5. 尝试修改对应库的字符集,问题依旧(但不得不说我感觉这么做没什么用,提示这个应该是卡在连接上了而不是存取上

我已经做了如上尝试,但是问题还是依旧。不知道大家有什么可以指导的地方?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧竹 2022-09-12 01:46:44

如果你还是5.5版本,则需要重新cmake或者指定字符集目录。该问题官方文档:https://dev.mysql.com/doc/ref...

clipboard.png

贵在坚持 2022-09-12 01:46:44

谢瑶。 cmake加上-DWITH_EXTRA_CHARSETS=gbk,gb2312,utf8,ascii,utf8mb4即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文