web-dev-qa-db-fra.com

"Le serveur a envoyé le jeu de caractères (255) inconnu au client" Définir le jeu de caractères MySQL sur utf8 sans /etc/my.cnf?

J'essaie de me connecter à une base de données MySQL à partir de phpMyAdmin. Mais quand je mets le nom d'utilisateur et le mot de passe, je reçois deux messages d'erreur disant:

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

mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers

J'utilise MySQL 8.0.11 et phpMyAdmin 4.8.2

J'ai trouvé cette réponse pour un problème similaire: PDO :: __ construct (): le serveur a envoyé le jeu de caractères (255) inconnu au client. Veuillez le signaler aux développeurs

Voici la partie importante: "MySQL 8 a changé le jeu de caractères par défaut en utfmb4. Mais certains clients ne connaissent pas ce jeu de caractères. Par conséquent, lorsque le serveur signale son jeu de caractères par défaut au client et que le client ne sait pas ce que signifie le serveur, il jette cette erreur. "

La solution proposée consiste à remplacer le jeu de caractères par défaut par utf8 en ajoutant quelques lignes à /etc/my.cnf et à redémarrer mysqld.

Mon problème est que /etc/my.cnf n'existe nulle part dans mes fichiers, je ne peux donc pas y changer le jeu de caractères par défaut. Tous les autres endroits que j'ai consultés finissent par se référer à /my.cnf ou référencer des versions plus anciennes.

Alors, comment puis-je changer le jeu de caractères par défaut en utf8 sans /etc/my.cnf pour MySQL 8?

5
X Mac

Pour clarifier la réponse:

  1. Créez un fichier appelé my.cnf dans votre /etc/ dossier.

  2. Ajoutez maintenant le texte suivant à /etc/my.cnf:

    [client]
    jeu de caractères par défaut = utf8

    [mysql]
    jeu de caractères par défaut = utf8

    [mysqld]
    collation-server = utf8_unicode_ci
    jeu de caractères-serveur = utf8
    default_authentication_plugin = mysql_native_password

Enfin, redémarrez mysql et tout devrait aller bien! Si vous rencontrez toujours un problème, essayez de mettre à niveau PHP vers une version ultérieure.

5
Oli C

Réinstallez MySQL 8 et choisissez la deuxième méthode "Utiliser la méthode d'authentification héritée (conserver la compatibilité MySQL 5.x)" de l'authentification lors de l'installation.

0
npsingh