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.
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:
Ouvrez le fichier sql dans votre éditeur de texte
Trouvez et remplacez tout utf8mb4_unicode_520_ciparutf8mb4_unicode_ci
Enregistrer et télécharger dans une nouvelle base de données mySql
@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 .
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;
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
15
il suffit de supprimer "520_" utf8mb4_unicode_520_ci→utf8mb4_unicode_ci
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:
Cliquez sur l'onglet Exporter pour la base de données
Cliquez sur le bouton radio Personnalisé.
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.
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Réponses:
Vous pouvez résoudre ce problème en trouvant
dans votre
.sql
fichier, et en l'échangeant avecla source
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'
:, j'ai remplacéutf8mb4_unicode_520_ci
parutf8mb4_unicode_ci
et ça marche, selon la réponse de Sabba.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:
utf8mb4_unicode_520_ci
parutf8mb4_unicode_ci
J'espère que cela pourra aider
la source
utf8mb4_unicode_520_ci
a un bien meilleur support UTF-8 queutf8mb4_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.htmlDans 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
.sql
fichier que j'avais exporté depuis mon ancien serveur.MySQL 5.5 ne prend pas en charge
utf8mb4_unicode_520_ci
, maisMySQL 5.6 le fait.
La mise à jour
MySQL 5.6
sur 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
.sql
fichier exporté- remplacer les instances de
utf8mb4unicode520_ci
etutf8mb4_unicode_520_ci
... par
utf8mb4_unicode_ci
- importer votre
.sql
fichier mis à jour .la source
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!
la source
il suffit de supprimer "520_"
utf8mb4_unicode_520_ci
→utf8mb4_unicode_ci
la source
remplacement facile
la source
sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Je viens d'ouvrir le fichier dump.sql dans Notepad ++ et appuyez sur CTRL + H pour trouver et remplacer la chaîne " utf8mb4_0900_ai_ci " et l' ai remplacée par " utf8mb4_general_ci ". Lien source https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/
la source
trouver et remplacer:
avec
dans tout le fichier SQL
la source
general
etutf8
sont les deux pas en arrière.En retard à la fête, mais au cas où cela se produirait avec une
WORDPRESS
installation:#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
TYPE
option qui était synonyme de aENGINE
été supprimée dans MySQL 5.5.Ouvrez votre
.sql
fichier, recherchez et remplacez toutes les instancesdu
TYPE=
auENGINE=
Maintenant, l'importation devrait se dérouler sans problème.
la source
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:
la source
Dans mon cas, je le remplace
utf8_general_ci
par sed comme ceci:Après cela, je peux l'importer sans aucun problème.
la source