Maison >base de données >tutoriel mysql >Pourquoi mon application Symfony 3 obtient-elle une erreur « PDO::__construct() : Le serveur a envoyé un jeu de caractères (255) inconnu au client » lors de la connexion à MySQL ?

Pourquoi mon application Symfony 3 obtient-elle une erreur « PDO::__construct() : Le serveur a envoyé un jeu de caractères (255) inconnu au client » lors de la connexion à MySQL ?

DDD
DDDoriginal
2024-12-15 19:55:15576parcourir

Why Does My Symfony 3 App Get a

Erreur PDO::__construct() : jeu de caractères du serveur inconnu du client

Lors de la tentative d'établissement d'une connexion à une base de données MySQL à partir d'une application Symfony 3 , vous pourriez rencontrer ce qui suit erreur :

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

Problème :

Cette erreur survient car le serveur MySQL transmet un jeu de caractères (255), qui n'est pas reconnu par le client. Le problème provient d'un changement récent dans MySQL 8, où le jeu de caractères par défaut a été modifié en utf8mb4. Cependant, certains clients, dont celui utilisé par PDO, ne sont pas au courant de ce changement, ce qui entraîne l'erreur.

Solution :

Pour résoudre ce problème, vous devez deux options :

  1. Mettez à niveau votre client : La solution la plus efficace consiste à mettre à niveau votre client PDO vers le dernière version, qui prend en charge le jeu de caractères mis à jour.
  2. Modifier le jeu de caractères du serveur : Si vous ne pouvez pas mettre à niveau le client, vous pouvez modifier le jeu de caractères du serveur MySQL en utf8, qui est compatible avec des clients plus âgés. Pour ce faire, ajoutez les paramètres suivants à /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

En activant le jeu de caractères utf8 sur le serveur, vous pouvez le rendre compatible avec les clients qui le font ne prend pas en charge utf8mb4. Cela résoudra l'erreur de non-concordance de jeu de caractères et vous permettra d'établir une connexion réussie à la base de données MySQL.

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