最近遇到一种情况,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-server
和 character-set-server
配置项,将值修改为
collation-server = utf8_unicode_ci
character-set-server = utf8
wampserver的配置节点名是
[wampmysqld64]
或[wampmysqld32]
如果没有找到这两项配置,直接在配置节点新增就行。
修改完保存配置,然后重启 MySQL。