ERROR 1115 (42000): Jeu de caractères inconnu: ‘utf8mb4’

J’ai un dump MySQL, que j’ai essayé de restaurer avec:

mysql -u"username" -p"password" --host="127.0.0.1" mysql_db < mysql_db 

Cependant, cela a jeté une erreur:

 ERROR 1115 (42000) at line 3231: Unknown character set: 'utf8mb4' 

Ceci est les lignes 3231-3233:

 /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_general_ci */ ; 

J’utilise MySQL 5.1.69. Comment puis-je résoudre cette erreur?

Votre version ne supporte pas ce jeu de caractères, je crois que c’était 5.5.3 qui l’a introduit. Vous devriez mettre à jour votre mysql à la version que vous avez utilisée pour exporter ce fichier.

L’erreur est alors tout à fait claire: vous définissez un certain jeu de caractères dans votre code, mais votre version de mysql ne le prend pas en charge et ne le connaît donc pas.

Selon https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html :

utf8mb4 est un sur-ensemble de utf8

alors peut-être y a-t-il une chance que vous puissiez simplement le rendre utf8, fermer les yeux et espérer, mais cela dépend de vos données, et je ne le recommanderais pas.

Tu peux essayer:

Ouvrez le fichier sql par un éditeur de texte

 utf8mb4 to utf8 

Importer à nouveau.

Cela peut aider:

 mysqldump --compatible=mysql40 -u user -p DB > dumpfile.sql 

PHPMyAdmin a le même mode de compatibilité MySQL dans les options d’exportation «expert». Bien que cela ne se soit jamais produit à certaines occasions.

Si vous n’avez pas access via la ligne de commande ou via PHPMyAdmin, éditez le fichier

 /*!50003 SET character_set_client = utf8mb4 */ ; 

bit to read 'utf8' seulement, c’est la voie à suivre.