Heim >Backend-Entwicklung >PHP-Tutorial >Warum schlägt meine PHP-PDO-Verbindung mit „Unbekannter Zeichensatz (255)' von MySQL 8 fehl?
PDO-Fehler: Unbekannter Zeichensatz (255) vom MySQL-Server
Beim Herstellen einer Verbindung zu einer MySQL-Datenbank können Entwickler auf den Fehler stoßen: „ PDO::__construct(): Der Server hat den dem Client unbekannten Zeichensatz (255) gesendet. Bitte melden Sie dies den Entwicklern. Dies kann in Situationen mit Docker-Containern und Symfony-Anwendungen auftreten.
Ursache:
MySQL Version 8 führte eine Änderung ein, bei der der Standardzeichensatz auf utf8mb4 geändert wurde. Allerdings erkennen einige Clients, wie z. B. bestimmte PHP-Versionen, diesen Zeichensatz nicht. Wenn der Server dem Client seinen Standardzeichensatz mitteilt, führt mangelndes Verständnis des Clients zu dem Fehler.
Lösung:
Die ideale Lösung besteht darin, den Client auf zu aktualisieren eine, die utf8mb4 unterstützt. Aus Kompatibilitätsgründen ist es möglich, den Zeichensatz des Servers auf utf8 anzupassen, wie unten gezeigt:
Schritt 1: MySQL-Serverkonfiguration bearbeiten
Fügen Sie die folgenden Zeilen hinzu /etc/my.cnf 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
Schritt 2: Neustart MySQL
MySQL neu starten, um die Änderungen zu übernehmen:
service mysql restart
Diese Änderung stellt die Kompatibilität mit älteren Clients sicher, die utf8mb4 nicht unterstützen.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine PHP-PDO-Verbindung mit „Unbekannter Zeichensatz (255)' von MySQL 8 fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!