# 1273 - Unbekannte Sortierung: 'utf8mb4_unicode_520_ci'


157

Ich habe eine WordPress-Website auf meinem lokalen WAMP- Server. Wenn ich jedoch die Datenbank auf den Live-Server hochlade, wird eine Fehlermeldung angezeigt

#1273  Unknown collation: utf8mb4_unicode_520_ci

Jede Hilfe wäre dankbar!


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

3
Vergessen Sie nicht, zuerst die Antwort von @ SherylHohman zu lesen - aktualisieren Sie einfach auf mariadb / mysql 5.6, damit Ihr Server diese Sortierung unterstützt.
Squarecandy


Hier finden Sie auch eine Kurzanleitung ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci ), in der alle drei Schritte erläutert werden, die Sie ausführen sollten, um sicherzustellen, dass Sie alles getan haben.
WPZA

Überprüfen Sie diese Lösung hier für # 1273 - Unbekannte Sortierung: 'utf8mb4_0900_ai_ci' freakyjolly.com/…
Code Spy

Antworten:


216

Sie können dies lösen, indem Sie finden

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

in Ihrer .sqlDatei, und tauschen Sie es mit

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
Ich empfehle die Antwort von Sabba ( stackoverflow.com/a/44122258/168309 ), da sie die utf8mb4
Amir

5
Die unten stehende Lösung von @Sabba Keynejad ist meiner Meinung nach besser, da sie die mb4 beibehält. Sie sollten dies zuerst versuchen.
Maor Barazany

Beachten Sie, dass ich dies an mehreren Stellen in der SQL-Datei ersetzen musste. Es gab auch Stellen, an denen ich Stackoverflow.com/a/44122258/1436129 unten ausführen musste.
Aubreypwd

Tatsächlich fand diese Antwort funktioniert, wenn die verknüpfte Antwort von Sabba nicht funktionierte. Vermutlich aufgrund meiner MySQL-Installationsstandards. +1
Gone Coding

es funktioniert nicht, jetzt ist es Fehler geben: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' , ich habe ersetzt utf8mb4_unicode_520_cimit utf8mb4_unicode_ciund es funktioniert, wie pro Sabba Antwort.
Haritsinh Gohil

285

Ich glaube, dieser Fehler wird verursacht, weil auf dem lokalen Server und dem Live-Server unterschiedliche Versionen von MySQL ausgeführt werden. Um dies zu lösen:

  1. Öffnen Sie die SQL-Datei in Ihrem Texteditor
  2. Finde und ersetze alle utf8mb4_unicode_520_cidurchutf8mb4_unicode_ci
  3. Speichern und in eine neue mySql-Datenbank hochladen

hoffentlich hilft dasGeben Sie hier die Bildbeschreibung ein


4
AUF KEINEN FALL!!! Es wurde in großem Umfang dokumentiert , dass utf8mb4_unicode_520_cihat viel als besser UTF-8 - Unterstützung utf8mb4_unicode_ci! Sauce: mysql.rjweb.org/doc.php/charcoll#best_practice mit visueller Klarstellung, die beweist, dass 520_ci hier überlegen ist: mysql.rjweb.org/utf8_collations.html
John

5
@ John, Die Artikel, die Sie verlinkt haben, verteidigen diesen Kommentar nicht wirklich. Ihr "So" kann von ihrer Prämisse aus nicht einmal richtig angegeben werden. Insgesamt ist der gesamte Artikel schlecht geschrieben, obwohl es dort einige gute Informationen zu geben scheint. Die 520-Kollatierung verwendet eine neuere Version des Unicode-Kollatierungsalgorithmus (UCA - Version 5.2.0) mit unterschiedlichen Gewichten, aber zu sagen, dass sie "eine viel bessere UTF-8-Unterstützung hat", scheint mehr als eine Strecke zu sein.
Gremio

Nehmen wir an, dass ein Standardkörper (Unicode) normalerweise jede neuere Version (5.20) "besser" macht als eine ältere Version (4.0).
Rick James

Dies ist die beste Antwort.
Niby

Ich schlage diese Lösung vor, weil sie alle "utf8mb4_unicode_520_ci" Vorkommen ersetzt. Während Savani Sandip Antwort einige lässt.
Rakesh

49

In meinem Fall stellte sich heraus, dass mein
neuer Server lief MySQL 5.5, der
alte Server lief MySQL 5.6.
Beim Versuch, die .sqlvon meinem alten Server exportierte Datei zu importieren, trat diese Fehlermeldung auf .

MySQL 5.5 unterstützt nicht utf8mb4_unicode_520_ci,
MySQL 5.6 jedoch.

Durch das Aktualisieren MySQL 5.6auf den neuen Server wurde der Fehler behoben!

Wenn Sie MySQL 5.5 beibehalten möchten, können Sie:
- eine Kopie Ihrer exportierten .sqlDatei erstellen
- Instanzen von ersetzen utf8mb4unicode520_ciund utf8mb4_unicode_520_ci
... durch utf8mb4_unicode_ci
- Ihre aktualisierte .sqlDatei importieren .


2
Dies ist absolut der beste Weg, wenn Sie die volle Kontrolle über Ihren Server haben. Aktualisieren Sie den neuen Server so, dass er mit dem alten Server übereinstimmt. Wenn Sie nicht über den Zugriff zum Aktualisieren Ihres neuen Serverstandorts verfügen, ist die Methode zum Suchen und Ersetzen wahrscheinlich in Ordnung. In jedem Fall sollten Sie stattdessen nur dieses Upgrade durchführen.
Squarecandy

1
5.6 ist, als 520 hinzugefügt wurde.
Rick James

Dies sollte die richtige Antwort sein. Die meisten anderen Lösungen ähneln eher Hacks. Danke @SherylHohman
sawyerrken

30

Öffnen Sie die SQL-Datei in Ihrem Texteditor.

1. Suche: utf8mb4_unicode_ci Ersetzen: utf8_general_ci (Alle ersetzen)

2. Suche: utf8mb4_unicode_520_ci Ersetzen: utf8_general_ci (Alle ersetzen)

3. Suche: utf8mb4 Ersetzen: utf8 (Alle ersetzen)

Speichern und hochladen!


Ich bin wirklich froh, dass ich Ihre Lösung dafür gefunden habe. Ich habe seit Tagen diesen Fehler # 1273 erhalten und konnte einfach keine Lösung dafür finden
Flying-Dev

Lebensretter. Vielen Dank!
Robbclarke


14

einfach zu ersetzen

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

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


6

suchen und Ersetzen:

utf8mb4_unicode_520_ci

mit

utf8_general_ci

in der gesamten SQL-Datei


3
generalund utf8sind beide Schritte zurück.
Rick James

3

Spät zur Party, aber falls dies bei einer WORDPRESSInstallation passiert :

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

In phpmyadmin unter export method> Format-specific options(benutzerdefinierter Export)

Einstellen : MYSQL40

Wenn Sie jetzt versuchen zu importieren, wird möglicherweise eine weitere Fehlermeldung angezeigt:

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

Dies liegt daran, dass die ältere TYPEOption, mit der synonym ENGINEwar, in MySQL 5.5 entfernt wurde.

Öffnen Sie Ihre .sqlDatei, suchen und ersetzen Sie alle Instanzen

von TYPE=bisENGINE=

Jetzt sollte der Import reibungslos verlaufen.


3

Kollatierungsfehler # 1273 abrufen - Unbekannte Kollatierung: 'utf8mb4_unicode_520_ci' wird durch den Unterschied zwischen der MySQL-Version, aus der Sie exportieren, und unserem MySQL-Server, auf den Sie importieren, verursacht. Grundsätzlich überprüft die Wordpress-Bibliothek für neuere Versionen, auf welcher SQL-Version Ihre Site ausgeführt wird. Wenn MySQL Version 5.6 oder höher verwendet wird, wird die Verwendung eines neuen und verbesserten Unicode-Kollatierungsalgorithmus (UCA) mit dem Namen "utf8mb4_unicode_520_ci" vorausgesetzt. Dies ist großartig, es sei denn, Sie verschieben Ihre WordPress-Site von einer neueren 5.6-Version von MySQL auf eine ältere Version vor 5.6 von MySQL.

Um dies zu beheben, müssen Sie entweder Ihre SQL-Exportdatei bearbeiten und suchen und ersetzen, wobei Sie alle Instanzen von 'utf8mb4_unicode_520_ci' in 'utf8mb4_unicode_ci' ändern. Oder führen Sie die folgenden Schritte aus, wenn Sie über einen PHPMyAdmin verfügen:

  1. Klicken Sie auf die Registerkarte Exportieren für die Datenbank
  2. Klicken Sie auf das Optionsfeld Benutzerdefiniert.
  3. Gehen Sie zum Abschnitt Formatspezifische Optionen und ändern Sie das Dropdown-Menü für das Datenbanksystem oder einen älteren MySQL-Server, um die Ausgabekompatibilität zu maximieren mit: von NONE bis MYSQL40.
  4. Scrollen Sie nach unten und klicken Sie auf GO.

1

In meinem Fall utf8_general_ciersetze ich es durch sed wie folgt:

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 

Danach kann ich es ohne Probleme importieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.