Heim >Datenbank >MySQL-Tutorial >Warum erhält meine Symfony 3-App beim Herstellen einer Verbindung zu MySQL den Fehler „PDO::__construct(): Server sent charset (255) unbekannt to the client'?

Warum erhält meine Symfony 3-App beim Herstellen einer Verbindung zu MySQL den Fehler „PDO::__construct(): Server sent charset (255) unbekannt to the client'?

DDD
DDDOriginal
2024-12-15 19:55:15576Durchsuche

Why Does My Symfony 3 App Get a

PDO::__construct() Fehler: Server-Zeichensatz dem Client unbekannt

Beim Versuch, eine MySQL-Datenbankverbindung von einer Symfony 3-Anwendung herzustellen , können Sie auf Folgendes stoßen Fehler:

PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers

Problem:

Dieser Fehler tritt auf, weil der MySQL-Server einen Zeichensatz (255) überträgt, der vom Client nicht erkannt wird. Das Problem ist auf eine kürzliche Änderung in MySQL 8 zurückzuführen, bei der der Standardzeichensatz auf utf8mb4 geändert wurde. Bestimmte Clients, einschließlich des von PDO genutzten Clients, sind sich dieser Änderung jedoch nicht bewusst, was zu dem Fehler führt.

Lösung:

Um dieses Problem zu beheben, müssen Sie Folgendes tun zwei Optionen:

  1. Aktualisieren Sie Ihren Client: Die effektivste Lösung besteht darin, Ihren PDO-Client auf die neueste Version zu aktualisieren Version, die den aktualisierten Zeichensatz unterstützt.
  2. Server-Zeichensatz ändern: Wenn Sie den Client nicht aktualisieren können, können Sie den Zeichensatz des MySQL-Servers auf utf8 ändern, das mit kompatibel ist ältere Kunden. Fügen Sie dazu die folgenden Einstellungen zu /etc/my.cnf hinzu und starten Sie MySQL neu:
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


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

Durch die Aktivierung des utf8-Zeichensatzes auf dem Server können Sie ihn mit Clients kompatibel machen, die dies tun Unterstützt utf8mb4 nicht. Dadurch wird der Fehler bei der Nichtübereinstimmung des Zeichensatzes behoben und Sie können eine erfolgreiche Verbindung zur MySQL-Datenbank herstellen.

Das obige ist der detaillierte Inhalt vonWarum erhält meine Symfony 3-App beim Herstellen einer Verbindung zu MySQL den Fehler „PDO::__construct(): Server sent charset (255) unbekannt to the client'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn