Bitte melden Sie es den Entwicklern: PDO::__construct(): Vom Server gesendeter Zeichensatz (255) vom Client nicht erkannt
P粉808697471
P粉808697471 2023-10-16 10:02:44
0
2
510

Ich versuche, von einer Symfony 3-Anwendung aus eine Verbindung zu einer MySQL-Datenbank herzustellen. Aber wenn ich versuche, ein MySQL-Schema über den Symfony-Konsolenbefehl zu erstellen, erhalte ich diese Fehlermeldung:PDO::__construct(): 服务器发送了客户端未知的字符集 (255)。请向开发者报告

PHP und MySQL laufen beide in Docker-Containern.

MySQL-Version:8.0.1

PHP-Version:7.1.3

Fahrer:pdo_mysql

Zeichensatz:UTF8

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

Irgendwelche Ideen?

P粉808697471
P粉808697471

Antworte allen (2)
P粉364642019

升级到MySQL 8.0.11后,我在使用PHP的mysqli_connect()函数时遇到了与OP相同的问题。在我的 MySQL 目录(在我的例子中,usr/local/mysql)中,我创建了my.cnf文件,添加了接受的答案中的内容,然后重新启动 MySQL服务器。然而,这产生了一个新的错误:

mysqli_connect():服务器请求客户端未知的身份验证方法 [caching_sha2_password]

我添加了行default_authentication_plugin = mysql_native_password,所以my.cnf现在看起来像:

[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8 default_authentication_plugin = mysql_native_password

我很高兴可以出发了!

更多参考:https://github.com/laradock/laradock/issues/1392

请注意 ARA1307 的评论:

“请注意,您应该创建新用户并明确指定“IDENTIFIED WITH mysql_native_password”,并更改现有用户,例如:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

    P粉884548619

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

    另请参阅https://bugs.mysql.com/bug.php?id= 71606

    该错误是针对 MySQL Connector/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 年的答案中找到了这些设置:将 my.cnf 中的 MySQL 默认字符集更改为 UTF-8?

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!