我正在尝试从 Symfony 3 应用程序连接到 MySQL 数据库。但是当尝试从 Symfony 控制台命令创建 MySQL 模式时,我收到此错误: PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers
PHP 和 MySQL 都在 Docker 容器中运行。
MySQL版本: 8.0.1
PHP版本: 7.1.3
驱动程序: pdo_mysql
字符集: UTF8
dsn: "mysql:host=mysql;dbname=database;charset=UTF8;"
有任何想法吗?
原文由 Napas 发布,翻译遵循 CC BY-SA 4.0 许可协议
MySQL 8 将默认字符集更改为 utf8mb4。但是有些客户不知道这个字符集。因此,当服务器向客户端报告其默认字符集,并且客户端不知道服务器的含义时,它会抛出此错误。
另请参阅 https://bugs.mysql.com/bug.php?id=71606
该错误针对 MySQL 连接器/C++,因此它影响的不仅仅是 PHP。
好的 - 我通过将字符集更改为 utf8 来使其工作,以与未升级的客户端兼容。我将此添加到 /etc/my.cnf 并重新启动 mysqld:
我在 2010 年的回答中找到了这些设置: Change MySQL default character set to UTF-8 in my.cnf?