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
Libérer: 2024-12-11 02:59:09
original
838 Les gens l'ont consulté

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
Copier après la connexion
  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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal