PDO 错误:来自 MySQL 服务器的未知字符集 (255)
连接到 MySQL 数据库时,开发人员可能会遇到错误:" PDO::__construct():服务器向客户端发送了未知的字符集(255),请向开发人员报告。”在涉及 Docker 容器和 Symfony 应用程序的情况下,可能会出现这种情况。
原因:
MySQL 版本 8 引入了一项更改,将默认字符集修改为 utf8mb4。但是,某些客户端(例如某些 PHP 版本)无法识别此字符集。当服务器将其默认字符集传达给客户端时,客户端缺乏理解会导致错误。
解决方案:
理想的解决方案是将客户端升级到一个支持utf8mb4的。出于兼容性目的,可以将服务器的字符集调整为 utf8,如下所示:
第 1 步:编辑 MySQL 服务器配置
将以下行添加到/etc/my.cnf 并重新启动 MySQL:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
第 2 步:重新启动MySQL
重新启动 MySQL 以应用更改:
service mysql restart
此修改将确保与不支持 utf8mb4 的旧客户端的兼容性。
以上是为什么我的 PHP PDO 连接因 MySQL 8 中的'未知字符集 (255)”而失败?的详细内容。更多信息请关注PHP中文网其他相关文章!