Maison >développement back-end >tutoriel php >Pourquoi ma connexion PHP PDO échoue-t-elle avec le « Jeu de caractères inconnu (255) » de MySQL 8 ?
Erreur PDO : jeu de caractères inconnu (255) du serveur MySQL
Lors de la connexion à une base de données MySQL, les développeurs peuvent rencontrer l'erreur : " PDO::__construct() : Le serveur a envoyé un jeu de caractères (255) inconnu au client. Veuillez en informer les développeurs." Cela peut survenir dans des situations impliquant des conteneurs Docker et des applications Symfony.
Cause :
La version 8 de MySQL a introduit un changement dans lequel le jeu de caractères par défaut a été modifié en utf8mb4. Cependant, certains clients, comme certaines versions de PHP, ne reconnaissent pas ce jeu de caractères. Lorsque le serveur communique son jeu de caractères par défaut au client, le manque de compréhension du client conduit à l'erreur.
Solution :
La solution idéale est de mettre à niveau le client vers celui qui prend en charge utf8mb4. Pour des raisons de compatibilité, il est possible d'ajuster le jeu de caractères du serveur sur utf8, comme démontré ci-dessous :
Étape 1 : Modifier la configuration du serveur MySQL
Ajoutez les lignes suivantes à /etc/my.cnf et redémarrez MySQL :
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
Étape 2 : Redémarrez MySQL
Redémarrez MySQL pour appliquer les modifications :
service mysql restart
Cette modification garantira la compatibilité avec les anciens clients qui ne prennent pas en charge utf8mb4.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!