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
Libérer: 2024-12-15 19:55:15
original
574 Les gens l'ont consulté

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

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal