Maison >base de données >tutoriel mysql >Erreur de connexion MySQL PDO : comment résoudre « Jeu de caractères envoyé par le serveur (255) inconnu du client » ?

Erreur de connexion MySQL PDO : comment résoudre « Jeu de caractères envoyé par le serveur (255) inconnu du client » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 07:51:32622parcourir

MySQL PDO Connection Error: How to Resolve

Erreur de non-concordance de jeu de caractères : le serveur a envoyé un jeu de caractères inconnu (255)

Une tentative de connexion à une base de données MySQL à partir de Symfony 3 à l'aide de PDO entraîne le résultat erreur suivante : PDO::__construct() : le serveur a envoyé un jeu de caractères (255) inconnu du client. S'il vous plaît, faites rapport aux développeurs. Cette erreur peut se produire en raison d'une incompatibilité de jeu de caractères entre le serveur et le client.

Cause

Dans MySQL 8, le jeu de caractères par défaut est devenu utf8mb4. Cependant, certains clients, tels que PDO, peuvent ne pas reconnaître ce jeu de caractères. Lorsque le serveur envoie son jeu de caractères par défaut au client et que le client ne le reconnaît pas, l'erreur est générée.

Solution

La solution recommandée consiste à mettre à niveau le logiciel client vers une version prenant en charge le jeu de caractères utf8mb4. Cependant, jusqu'à ce qu'une mise à niveau soit possible, une solution de contournement existe :

Solution de contournement

Modifiez le jeu de caractères du serveur en utf8 pour être compatible avec les clients non mis à niveau. Pour ce faire, ajoutez les paramètres suivants au fichier /etc/my.cnf et redémarrez le serveur MySQL :

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn