Can't initialize character set utf8 (path: /usr/share/mysql/charsets/)

2860阅读 0评论2021-07-29 wwmshe
分类:系统运维

在服务器(centos 7.9+php 7.0+MariaDB 10.6)上运行thinkphp(5.0)项目,出现如下报错:


起初以为是mariadb没有设置默认utf8编码,于是将相关设置写入/etc/my.cnf.d/server.cnf及/etc/my.cnf.d/mysql-clients.cnf文件,但问题依旧。

后来发现,新版的mariadb已将utf8编码升级为utf8mb3编码(/usr/share/mysql/charsets/Index.xml):


因此,需要将thinkphp数据库配置文件(application/database.php)里的编码也改为utf8mb3:
// 数据库编码默认采用utf8
'charset'        => 'utf8mb3',

然后F5刷新,问题解决。
上一篇:centos6官方备用源
下一篇:没有了