当初拿thinkphp5写了一个项目,为了搞定emoji的问题,数据库字符集用了utf8mb4,在当时的服务器上跑的好好的。最近由于一些原因需要将整个系统转移到新的服务器上。但是当导入原有数据库,系统部署上去之后,试图运行却翻来覆去提示Can't initialize character set utf8mb4
。。
我目前已经做过的一些尝试(虽然我现在还没处理好,但是一些思路我觉得其他人是可以借鉴的)
检查自己php系统数据库连接信息,正常
检查服务器版本,最开始发现装上的是5.5.2,而支持utf8mb4的mysql版本需求是>=5.5.3,升级之后,问题依旧
修改my.cnf
使utf8mb4变为连接默认字符集(可以参考这篇文章),问题依旧
尝试服务器端mysql client跑SET NAMES utf8mb4
,成功在mysql客户端内运行,但是问题依旧
尝试修改对应库的字符集,问题依旧(但不得不说我感觉这么做没什么用,提示这个应该是卡在连接上了而不是存取上)
我已经做了如上尝试,但是问题还是依旧。不知道大家有什么可以指导的地方?
如果你还是5.5版本,则需要重新cmake或者指定字符集目录。该问题官方文档:https://dev.mysql.com/doc/ref...