Ich habe eine WordPress-Website auf meinem lokalen WAMP- Server. Wenn ich jedoch die Datenbank auf den Live-Server hochlade, wird eine Fehlermeldung angezeigt
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.
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:
Öffnen Sie die SQL-Datei in Ihrem Texteditor
Finde und ersetze alle utf8mb4_unicode_520_cidurchutf8mb4_unicode_ci
Speichern und in eine neue mySql-Datenbank hochladen
@ 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 .
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
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
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:
Klicken Sie auf die Registerkarte Exportieren für die Datenbank
Klicken Sie auf das Optionsfeld Benutzerdefiniert.
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.
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Antworten:
Sie können dies lösen, indem Sie finden
in Ihrer
.sql
Datei, und tauschen Sie es mitquelle
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'
, ich habe ersetztutf8mb4_unicode_520_ci
mitutf8mb4_unicode_ci
und es funktioniert, wie pro Sabba Antwort.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:
utf8mb4_unicode_520_ci
durchutf8mb4_unicode_ci
hoffentlich hilft das
quelle
utf8mb4_unicode_520_ci
hat viel als besser UTF-8 - Unterstützungutf8mb4_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.htmlIn meinem Fall stellte sich heraus, dass mein
neuer Server lief
MySQL 5.5
, deralte Server lief
MySQL 5.6
.Beim Versuch, die
.sql
von 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.6
auf den neuen Server wurde der Fehler behoben!Wenn Sie MySQL 5.5 beibehalten möchten, können Sie:
- eine Kopie Ihrer exportierten
.sql
Datei erstellen- Instanzen von ersetzen
utf8mb4unicode520_ci
undutf8mb4_unicode_520_ci
... durch
utf8mb4_unicode_ci
- Ihre aktualisierte
.sql
Datei importieren .quelle
Ö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!
quelle
entferne einfach "520_"
utf8mb4_unicode_520_ci
→utf8mb4_unicode_ci
quelle
einfach zu ersetzen
quelle
sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Ich habe gerade die Datei dump.sql in Notepad ++ geöffnet und STRG + H gedrückt, um die Zeichenfolge " utf8mb4_0900_ai_ci " zu finden, zu ersetzen und durch " utf8mb4_general_ci " zu ersetzen . Quelllink https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/
quelle
suchen und Ersetzen:
mit
in der gesamten SQL-Datei
quelle
general
undutf8
sind beide Schritte zurück.Spät zur Party, aber falls dies bei einer
WORDPRESS
Installation 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
TYPE
Option, mit der synonymENGINE
war, in MySQL 5.5 entfernt wurde.Öffnen Sie Ihre
.sql
Datei, suchen und ersetzen Sie alle Instanzenvon
TYPE=
bisENGINE=
Jetzt sollte der Import reibungslos verlaufen.
quelle
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:
quelle
In meinem Fall
utf8_general_ci
ersetze ich es durch sed wie folgt:Danach kann ich es ohne Probleme importieren.
quelle