首页 >后端开发 >php教程 >为什么我的 PHP PDO 连接因 MySQL 8 中的'未知字符集 (255)”而失败?

为什么我的 PHP PDO 连接因 MySQL 8 中的'未知字符集 (255)”而失败?

Barbara Streisand
Barbara Streisand原创
2024-12-10 03:33:08890浏览

Why Does My PHP PDO Connection Fail with

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn