Maison > Questions et réponses > le corps du texte
J'ai initialement écrit un projet en utilisant thinkphp5 Afin de résoudre le problème des emoji, le jeu de caractères de la base de données utilisait utf8mb4, qui fonctionnait bien sur le serveur à l'époque. Récemment, pour certaines raisons, il a été nécessaire de transférer l'ensemble du système vers un nouveau serveur. Mais après avoir importé la base de données d'origine et déployé le système, j'ai essayé de l'exécuter mais l'invite revenait encore et encore Can't initialize character set utf8mb4
. .
Quelques tentatives que j'ai faites jusqu'à présent (même si je ne les ai pas encore traitées, mais je pense que d'autres personnes peuvent apprendre de certaines idées)
Vérifiez les informations de connexion à la base de données de votre système php, c'est normal
En vérifiant la version du serveur, j'ai d'abord découvert que la version installée était 5.5.2 et que la version MySQL qui prend en charge utf8mb4 nécessite >=5.5.3. Après la mise à niveau, le problème persiste
Modifiémy.cnf
pour faire de utf8mb4 le jeu de caractères par défaut pour les connexions (vous pouvez vous référer à cet article), mais le problème demeure
Essayez d'exécuter le client MySQL côté serveurSET NAMES utf8mb4
, et il s'exécute avec succès dans le client MySQL, mais le problème persiste
Essayez de modifier le jeu de caractères de la bibliothèque correspondante, mais le problème demeure (Mais je dois dire que je pense que cela ne sert à rien, suggérant que cela devrait être bloqué en connexion plutôt qu'en accès )
J'ai essayé ce qui précède, mais le problème persiste. Je ne sais pas si vous avez des conseils ?
迷茫2017-06-13 09:23:30
Si vous êtes toujours sur la version 5.5, vous devez recréer ou spécifier le répertoire du jeu de caractères. Documentation officielle sur ce problème : https://dev.mysql.com/doc/ref...