gpt4 book ai didi

php - PDO::__construct():服务器发送的字符集 (255) 客户端未知。请向开发人员报告

转载 作者:行者123 更新时间:2023-11-30 21:54:49 25 4
gpt4 key购买 nike

我正在尝试从 Symfony 3 应用程序连接到 MySQL 数据库。但是,当尝试从 Symfony 控制台命令创建 MySQL 模式时,我收到此错误:PDO::__construct(): Server sent charset (255) unknown to the client。请向开发者报告

PHP 和 MySQL 都在 Docker 容器中运行。

MySQL 版本:8.0.1

PHP 版本:7.1.3

驱动:pdo_mysql

字符集:UTF8

dsn: "mysql:host=mysql;dbname=database;charset=UTF8;"

有什么想法吗?

最佳答案

MySQL 8 将默认字符集更改为 utf8mb4。但是有些客户不知道这个字符集。因此,当服务器向客户端报告其默认字符集,而客户端不知道服务器的含义时,它会抛出此错误。

另见 https://bugs.mysql.com/bug.php?id=71606

该错误针对 MySQL 连接器/C++,因此它影响的不仅仅是 PHP。

正确的解决方案是升级您的客户端,但与此同时我通过将服务器的字符集更改为 utf8 使其工作,以与未升级的客户端兼容。我将其添加到/etc/my.cnf 并重新启动了 mysqld:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

我在 2010 年的回答中找到了这些设置:Change MySQL default character set to UTF-8 in my.cnf?

关于php - PDO::__construct():服务器发送的字符集 (255) 客户端未知。请向开发人员报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com