Maison >développement back-end >tutoriel php >Pourquoi mon application Symfony 3 obtient-elle une erreur « PDO::__construct() : Server sent charset (255) inconnue du client » lors de la connexion à MySQL 8.0.1 ?

Pourquoi mon application Symfony 3 obtient-elle une erreur « PDO::__construct() : Server sent charset (255) inconnue du client » lors de la connexion à MySQL 8.0.1 ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-11 02:59:09913parcourir

Why Does My Symfony 3 App Get a

Erreur de jeu de caractères de serveur inconnue dans la connexion PDO MySQL

Lors de la tentative d'établissement d'une connexion à la base de données MySQL à partir d'une application Symfony 3, un message d'erreur apparaît : "PDO::__construct() : Le serveur a envoyé un jeu de caractères (255) inconnu au client. Veuillez en informer les développeurs." Cela signifie un problème où le serveur MySQL transmet un jeu de caractères (255) avec lequel le client PHP n'est pas familier.

Contexte :

L'erreur provient de MySQL 8.0. Transformation du jeu de caractères par défaut de .1 en utf8mb4. Cependant, tous les clients ne reconnaissent pas ce nouveau jeu de caractères. De ce fait, la transmission du serveur déclenche cette erreur.

Solution :

La solution optimale est de mettre à niveau le logiciel client. Cependant, une solution provisoire est disponible :

  1. Modifiez le jeu de caractères du serveur MySQL sur utf8 pour garantir la compatibilité avec les clients plus anciens.
  2. Ajoutez les paramètres suivants au fichier de configuration MySQL (/etc /my.cnf):
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
  1. Redémarrez le serveur MySQL (mysqld) pour les appliquer modifications.

Considérations supplémentaires :

  • L'erreur peut persister même si la version du client PHP est 7.1.33 ou supérieure.
  • Assurez-vous que le pilote PDO est mis à jour vers la dernière version.
  • Vérifiez que le jeu de caractères de la base de données est défini sur 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