# 1273 - Classement inconnu: 'utf8mb4_unicode_520_ci'


157

J'ai un site Web WordPress sur mon serveur WAMP local. Mais lorsque je télécharge sa base de données sur le serveur en direct, j'obtiens une erreur

#1273  Unknown collation: utf8mb4_unicode_520_ci

Toute aide serait appréciée!


37
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi

4
Dans une mer de solutions de recherche et de remplacement ci-dessous, n'oubliez pas de vérifier d'abord la réponse de @ SherylHohman - il vous suffit de mettre à niveau vers mariadb / mysql 5.6 pour que votre serveur prenne en charge ce classement.
squarecandy


Il y a aussi un guide rapide ici ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci ) qui explique toutes les 3 étapes à suivre pour vous assurer que vous avez tout fait.
WPZA

Vérifiez cette solution ici pour # 1273 - Classement inconnu: 'utf8mb4_0900_ai_ci' freakyjolly.com
Code Spy

Réponses:


217

Vous pouvez résoudre ce problème en trouvant

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

dans votre .sqlfichier, et en l'échangeant avec

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
Je recommande la réponse de Sabba ( stackoverflow.com/a/44122258/168309 ) car il conserve l'utf8mb4
Amir

5
La solution ci-dessous de @Sabba Keynejad est meilleure à mon avis, car elle conserve le mb4, vous devriez d'abord essayer cela.
Maor Barazany

Notez que j'ai dû le remplacer à plusieurs endroits dans le fichier SQL. Il y avait aussi des endroits où je devais faire stackoverflow.com/a/44122258/1436129 ci-dessous aussi.
aubreypwd

En fait, cette réponse fonctionnait alors que la réponse liée de Sabba ne fonctionnait pas. Probablement à cause de mes paramètres par défaut d'installation MySql. +1
Fini le codage

ça ne marche pas, maintenant ça donne une erreur COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' :, j'ai remplacé utf8mb4_unicode_520_cipar utf8mb4_unicode_ciet ça marche, selon la réponse de Sabba.
Haritsinh Gohil

286

Je pense que cette erreur est due au fait que le serveur local et le serveur live exécutent différentes versions de MySQL. Pour résoudre ceci:

  1. Ouvrez le fichier sql dans votre éditeur de texte
  2. Trouvez et remplacez tout utf8mb4_unicode_520_ciparutf8mb4_unicode_ci
  3. Enregistrer et télécharger dans une nouvelle base de données mySql

J'espère que cela pourra aiderentrez la description de l'image ici


4
SÛREMENT PAS!!! Il a été largement documenté qu'il utf8mb4_unicode_520_cia un bien meilleur support UTF-8 que utf8mb4_unicode_ci! Sauce: mysql.rjweb.org/doc.php/charcoll#best_practice avec clarification visuelle prouvant que 520_ci est supérieur ici: mysql.rjweb.org/utf8_collations.html
John

5
@John, les articles que vous avez liés ne défendent pas vraiment ce commentaire. Leur «Ainsi» ne peut même pas être correctement énoncé à partir de leur prémisse. Dans l'ensemble, l'article entier est mal rédigé, bien qu'il semble y avoir de bonnes informations. Le classement 520 utilise une version plus récente de l'algorithme de classement Unicode (UCA - version 5.2.0) avec des poids différents, mais dire qu'il "a un bien meilleur support UTF-8" semble plus qu'un étirement.
Gremio

Supposons qu'un corps de normes (Unicode) rendra généralement chaque nouvelle version (5.20) "meilleure" qu'une ancienne version (4.0).
Rick James

C'est la meilleure réponse.
Niby

Je suggère cette solution car elle remplace toutes les occurrences "utf8mb4_unicode_520_ci". Alors que la réponse de savani sandip en laisse.
Rakesh

49

Dans mon cas, il s'avère que mon
nouveau serveur fonctionnait MySQL 5.5, l'
ancien serveur fonctionnait MySQL 5.6.
J'ai donc eu cette erreur en essayant d'importer le .sqlfichier que j'avais exporté depuis mon ancien serveur.

MySQL 5.5 ne prend pas en charge utf8mb4_unicode_520_ci, mais
MySQL 5.6 le fait.

La mise à jour MySQL 5.6sur le nouveau serveur a résolu le classement de l'erreur!

Si vous souhaitez conserver MySQL 5.5, vous pouvez:
- faire une copie de votre .sqlfichier exporté
- remplacer les instances de utf8mb4unicode520_ciet utf8mb4_unicode_520_ci
... par utf8mb4_unicode_ci
- importer votre .sqlfichier mis à jour .


2
C'est absolument la meilleure façon de le faire si vous avez un contrôle total sur votre serveur. Mettez à niveau le nouveau serveur pour qu'il corresponde à l'ancien serveur. Si vous n'avez pas accès pour mettre à niveau votre nouvel emplacement de serveur, la méthode de recherche-remplacement sera probablement correcte, mais dans tous les cas où vous pouvez simplement faire cette mise à niveau à la place, vous devriez le faire.
squarecandy

1
5.6 est quand 520 a été ajouté.
Rick James

Cela devrait être la bonne réponse. La plupart des autres solutions ressemblent plus à des hacks. Merci @SherylHohman
sawyerrken

30

Ouvrez le fichier sql dans votre éditeur de texte;

1. Rechercher: utf8mb4_unicode_ci Remplacer: utf8_general_ci (Tout remplacer)

2. Rechercher: utf8mb4_unicode_520_ci Remplacer: utf8_general_ci (Tout remplacer)

3. Rechercher: utf8mb4 Remplacer: utf8 (Tout remplacer)

Enregistrez et téléchargez!


Je suis vraiment content d'avoir trouvé votre solution à ce problème, je reçois cette erreur # 1273 depuis des jours et je n'ai tout simplement pas pu trouver une solution à cela
flying-dev

Gareautrain. Merci!
robbclarke le


14

remplacement facile

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

2
Sur macOS:sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Osvaldas


6

trouver et remplacer:

utf8mb4_unicode_520_ci

avec

utf8_general_ci

dans tout le fichier SQL


3
generalet utf8sont les deux pas en arrière.
Rick James

3

En retard à la fête, mais au cas où cela se produirait avec une WORDPRESSinstallation:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

Dans phpmyadmin, sous export method> Format-specific options(exportation personnalisée)

Mis à : MYSQL40

Si vous essayez d'importer maintenant, vous pourriez maintenant recevoir un autre message d'erreur:

1064 - You have an error in your SQL syntax; .....

C'est parce que l'ancienne TYPEoption qui était synonyme de a ENGINEété supprimée dans MySQL 5.5.

Ouvrez votre .sqlfichier, recherchez et remplacez toutes les instances

du TYPE=auENGINE=

Maintenant, l'importation devrait se dérouler sans problème.


3

Obtention de l'erreur de classement # 1273 - Classement inconnu: 'utf8mb4_unicode_520_ci' est causé par la différence entre la version MySQL à partir de laquelle vous exportez et notre serveur MySQL vers lequel vous importez. Fondamentalement, la bibliothèque Wordpress pour les versions plus récentes vérifie sur quelle version de SQL votre site est exécuté. S'il utilise MySQL version 5.6 ou plus, il suppose l'utilisation d'un nouvel algorithme de classement Unicode amélioré (UCA) appelé «utf8mb4_unicode_520_ci». C'est génial à moins que vous ne finissiez par déplacer votre site WordPress d'une version 5.6 plus récente de MySQL vers une version antérieure antérieure à la version 5.6 de MySQL.

Pour résoudre ce problème, vous devrez soit modifier votre fichier d'exportation SQL et effectuer une recherche et un remplacement, en changeant toutes les instances de «utf8mb4_unicode_520_ci» en «utf8mb4_unicode_ci». Ou suivez les étapes ci-dessous si vous avez un PHPMyAdmin:

  1. Cliquez sur l'onglet Exporter pour la base de données
  2. Cliquez sur le bouton radio Personnalisé.
  3. Accédez à la section intitulée Options spécifiques au format et modifiez la liste déroulante du système de base de données ou d'un ancien serveur MySQL pour maximiser la compatibilité de sortie avec: de NONE à MYSQL40.
  4. Faites défiler vers le bas et cliquez sur GO.

1

Dans mon cas, je le remplace utf8_general_cipar sed comme ceci:

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

Après cela, je peux l'importer sans aucun problème.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.