(Résolu) Collation inconnue UTF8MB4_0900_AI_CI

(Résolu) Collation inconnue UTF8MB4_0900_AI_CI

Un collation est un ensemble de règles qui définit comment comparer et trier les chaînes de caractères dans un serveur de base de données. Dans ce didacticiel, nous discutons d'une erreur face lors de la restauration de la base de données sur un autre serveur.

Voyons le problème et la solution au problème réalisé récemment:

Problème

Lors de la migration d'une application Web, j'ai obtenu l'erreur ci-dessous lors de la restauration d'une base de données sur un autre serveur. L'ID de collation peut différer en fonction de la version MySQL.

Message d'erreur:

Erreur 1273 (HY000) à la ligne 25 Collation inconnue: 'UTF8MB4_0900_AI_CI' 

Voir la capture d'écran d'erreur lors de la restauration de la base de données.

Ici, vous allez avec une solution.

Solution

Après une petite enquête, j'ai découvert que le serveur MySQL fonctionnant sur la destination est une version plus ancienne que la source. Nous avons donc obtenu que le serveur de destination ne contienne pas le collation de la base de données requise.

Ensuite, nous faisons un petit ajustement dans le fichier de sauvegarde pour résoudre ceci. Modifiez le fichier de sauvegarde de la base de données dans l'éditeur de texte et remplacez «UTF8MB4_0900_AI_CI" avec "UTF8MB4_GENERAL_CI" et "Charset = UTF8MB4" avec "Charset = UTF8".

Remplacez la chaîne ci-dessous:

Moteur = innodb par défaut Charset = utf8mb4 collate = utf8mb4_0900_ai_ci; 

avec:

Moteur = innodb par défaut Charset = UTF8 Collate = UTF8_General_ci; 

Enregistrez votre fichier et restaurez la base de données.

Les utilisateurs du système Linux peuvent utiliser la commande SED pour remplacer le texte dans les fichiers directement.

SED -I 'S / UTF8MB4_0900_AI_CI / UTF8_GENERAL_CI / G'.SQL  SED -I'S / CHARSET = UTF8MB4 / CHARSET = UTF8 / G '.SQL  

Que. Après les changements ci-dessus, la base de données a été restaurée avec succès!

J'espère que c'est une solution vous a aidé à résoudre "Collation inconnue: 'utf8mb4_0900_ai_ci'" problème.