MySQL 8.0 报 Server sent charset (255) unknown to the client 错误

2022-11-24
4601

最近遇到一种情况,PHP 使用 mysqli_connect() 连接 MySQL 8.0 数据库时,报 Server sent charset (255) unknown to the client. Please, report to the developers 错误。

导致这问题的根源是,MySQL 8 的默认字符集变更为 utf8mb4 ,而当前 PHP 内置的 MySQL客户端版本太低,无法识别该字符集。

要解决这种问题,我们可以调整 MySQL 配置,修改字符集为 utf8

打开 MySQL 配置文件,找到 [mysqld] 配置节点中的 collation-servercharacter-set-server 配置项,将值修改为

collation-server = utf8_unicode_ci
character-set-server = utf8

wampserver的配置节点名是[wampmysqld64][wampmysqld32]

如果没有找到这两项配置,直接在配置节点新增就行。

修改完保存配置,然后重启 MySQL。