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

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

DDD
Freigeben: 2024-12-18 15:57:09
Original
851 Leute haben es durchsucht

Why Does My Symfony 3 Application Get a

PDOs Unknown MySQL Character Set Dilemma

Beim Versuch, über eine Symfony 3-Anwendung eine Verbindung zu einer MySQL-Datenbank herzustellen, kann der rätselhafte Fehler auftreten Meldung „PDO::__construct(): Der Server hat einen dem Client unbekannten Zeichensatz (255) gesendet. Bitte melden Sie dies den Entwicklern.“ Dieses Problem ist auf eine Diskrepanz zwischen dem Standardzeichensatz des Servers und dem Verständnis des Clients zurückzuführen.

Hintergrund

MySQL Version 8.0.1 hat seinen Standardzeichensatz in utf8mb4 geändert . Bestimmte Kunden sind sich dieser Änderung jedoch noch nicht bewusst. Wenn der Server dem Client daher seinen Standardzeichensatz mitteilt, löst eine unerkannte Antwort den oben genannten Fehler aus.

Lösung

Die optimale Lösung besteht darin, den Client auf a zu aktualisieren Version, die utf8mb4 erkennt. Als Übergangsmaßnahme können Sie jedoch den Zeichensatz des Servers auf utf8 ändern, um nicht aktualisierte Clients zu unterstützen. Dies wird erreicht, indem die folgenden Zeilen zu /etc/my.cnf hinzugefügt werden:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
Nach dem Login kopieren

Alternative Lösung

Eine andere mögliche Lösung besteht darin, den MySQL-Verbindungszeichensatz zwangsweise festzulegen auf einen bestimmten Wert. In Ihrer PDO-Verbindungszeichenfolge können Sie den Zeichensatzparameter verwenden, z. B.:

$dsn = "mysql:host=mysql;dbname=database;charset=utf8mb4;";
Nach dem Login kopieren

Durch die explizite Definition des Zeichensatzes in der PDO-Verbindungszeichenfolge können Sie den Standardzeichensatz des Servers umgehen und die Kompatibilität mit beiden Upgrades sicherstellen und nicht aktualisierte Clients.

Das obige ist der detaillierte Inhalt vonWarum erhält meine Symfony 3-Anwendung beim Herstellen einer Verbindung mit 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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage