sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi
4
W morzu rozwiązań typu znajdź i zamień poniżej, nie zapomnij najpierw sprawdzić odpowiedzi @ SherylHohman - po prostu zaktualizuj do mariadb / mysql 5.6, aby Twój serwer obsługiwał to sortowanie.
Poniższe rozwiązanie @Sabba Keynejad jest moim zdaniem lepsze, ponieważ zachowuje mb4, powinieneś spróbować najpierw tego.
Maor Barazany
Uwaga, musiałem zamienić to w wielu miejscach w pliku SQL. Były też miejsca, w których musiałem zrobić stackoverflow.com/a/44122258/1436129 poniżej.
aubreypwd
Właściwie okazało się, że ta odpowiedź zadziałała, podczas gdy powiązana odpowiedź Sabby nie. Prawdopodobnie z powodu domyślnych ustawień mojej instalacji MySql. +1
Gone Coding
to nie działa, teraz daje błąd: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' , i zastąpiły utf8mb4_unicode_520_cize utf8mb4_unicode_cii to działa, jak na odpowiedź Sabba użytkownika.
Haritsinh Gohil
286
Uważam, że ten błąd jest spowodowany tym, że na serwerze lokalnym i serwerze rzeczywistym działają różne wersje MySQL. Aby rozwiązać ten problem:
Otwórz plik sql w edytorze tekstu
Znaleźć i zastąpić wszystkie utf8mb4_unicode_520_cizutf8mb4_unicode_ci
@John, Artykuły, do których prowadzą linki, nie chronią tego komentarza. Ich „tak” nie może być nawet właściwie określone na podstawie ich przesłanek. Ogólnie cały artykuł jest słabo napisany, chociaż wydaje się, że są tam dobre informacje. Sortowanie 520 wykorzystuje nowszą wersję algorytmu sortowania Unicode (UCA - wersja 5.2.0) z różnymi wagami, ale stwierdzenie, że „ma znacznie lepszą obsługę UTF-8” wydaje się czymś więcej niż rozciągnięciem.
Gremio
Załóżmy, że treść Standardów (Unicode) zwykle powoduje, że każda nowsza wersja (5.20) jest „lepsza” niż starsza wersja (4.0).
Rick James,
To najlepsza odpowiedź.
Niby
Proponuję to rozwiązanie, ponieważ zastępuje wszystkie wystąpienia „utf8mb4_unicode_520_ci”. Podczas gdy odpowiedź savani sandip pozostawia trochę.
Rakesh
49
W moim przypadku okazało się, że mój
nowy serwer działał MySQL 5.5,
stary MySQL 5.6.
Tak więc pojawił się ten błąd podczas próby zaimportowania .sqlpliku, który wyeksportowałem ze starego serwera.
MySQL 5.5 nie obsługuje utf8mb4_unicode_520_ci, ale
MySQL 5.6 tak.
Aktualizacja do MySQL 5.6na nowym serwerze rozwiązała problem sortowania!
Jeśli chcesz zachować MySQL 5.5, możesz:
- wykonać kopię wyeksportowanego .sqlpliku
- zamienić instancje utf8mb4unicode520_cii utf8mb4_unicode_520_ci
... na utf8mb4_unicode_ci
- zaimportować zaktualizowany .sqlplik.
Jest to absolutnie najlepszy sposób, aby to zrobić, jeśli masz pełną kontrolę nad swoim serwerem. Zaktualizuj nowy serwer, aby pasował do starego. Jeśli nie masz dostępu do uaktualnienia nowej lokalizacji serwera, metoda znajdowania i zamiany prawdopodobnie będzie w porządku, ale w każdym przypadku, gdy możesz po prostu wykonać to uaktualnienie, powinieneś.
squarecandy
1
5.6 oznacza, że dodano 520 .
Rick James,
To powinna być prawidłowa odpowiedź. Większość innych rozwiązań przypomina bardziej hacki. Dzięki @SherylHohman
Naprawdę się cieszę, że znalazłem rozwiązanie tego problemu, od kilku dni otrzymuję ten błąd # 1273 i po prostu nie mogłem znaleźć rozwiązania tego problemu
flying-dev
Ratownik. Dzięki!
robbclarke
15
po prostu usuń „520_” utf8mb4_unicode_520_ci→utf8mb4_unicode_ci
Uzyskiwanie błędu sortowania # 1273 - Nieznane sortowanie: „utf8mb4_unicode_520_ci” jest spowodowane różnicą między wersją MySQL, z której eksportujesz, a naszym serwerem MySQL, do którego importujesz. Zasadniczo biblioteka Wordpress dla nowszych wersji sprawdza, na jakiej wersji SQL działa Twoja witryna. Jeśli korzysta z MySQL w wersji 5.6 lub nowszej, zakłada użycie nowego i ulepszonego algorytmu sortowania Unicode (UCA) o nazwie „utf8mb4_unicode_520_ci”. To jest świetne, chyba że w końcu przeniesiesz swoją witrynę WordPress z nowszej wersji MySQL 5.6 do starszej wersji MySQL, starszej niż 5.6.
Aby rozwiązać ten problem, będziesz musiał albo edytować plik eksportu SQL, wyszukiwać i zamieniać, zmieniając wszystkie wystąpienia „utf8mb4_unicode_520_ci” na „utf8mb4_unicode_ci”. Lub wykonaj poniższe czynności, jeśli masz PHPMyAdmin:
Kliknij kartę Eksportuj dla bazy danych
Kliknij przycisk opcji Niestandardowe.
Przejdź do sekcji zatytułowanej Opcje specyficzne dla formatu i zmień listę rozwijaną dla Systemu bazy danych lub starszego serwera MySQL, aby zmaksymalizować zgodność danych wyjściowych z: z NONE na MYSQL40.
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Odpowiedzi:
Możesz rozwiązać ten problem, znajdując
w
.sql
pliku i zamieniając go zźródło
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'
, i zastąpiłyutf8mb4_unicode_520_ci
zeutf8mb4_unicode_ci
i to działa, jak na odpowiedź Sabba użytkownika.Uważam, że ten błąd jest spowodowany tym, że na serwerze lokalnym i serwerze rzeczywistym działają różne wersje MySQL. Aby rozwiązać ten problem:
utf8mb4_unicode_520_ci
zutf8mb4_unicode_ci
Mam nadzieję, że to pomoże
źródło
utf8mb4_unicode_520_ci
ma znacznie lepszą obsługę UTF-8 niżutf8mb4_unicode_ci
! Sos: mysql.rjweb.org/doc.php/charcoll#best_practice z wizualnym wyjaśnieniem udowadniającym, że 520_ci jest lepszy tutaj: mysql.rjweb.org/utf8_collations.htmlW moim przypadku okazało się, że mój
nowy serwer działał
MySQL 5.5
,stary
MySQL 5.6
.Tak więc pojawił się ten błąd podczas próby zaimportowania
.sql
pliku, który wyeksportowałem ze starego serwera.MySQL 5.5 nie obsługuje
utf8mb4_unicode_520_ci
, aleMySQL 5.6 tak.
Aktualizacja do
MySQL 5.6
na nowym serwerze rozwiązała problem sortowania!Jeśli chcesz zachować MySQL 5.5, możesz:
- wykonać kopię wyeksportowanego
.sql
pliku- zamienić instancje
utf8mb4unicode520_ci
iutf8mb4_unicode_520_ci
... na
utf8mb4_unicode_ci
- zaimportować zaktualizowany
.sql
plik.źródło
Otwórz plik sql w swoim edytorze tekstu;
1. Wyszukaj: utf8mb4_unicode_ci Zastąp: utf8_general_ci (Zastąp wszystko)
2. Wyszukaj: utf8mb4_unicode_520_ci Zastąp: utf8_general_ci (Zastąp wszystko)
3. Wyszukaj: utf8mb4 Zamień: utf8 (Zamień wszystko)
Zapisz i prześlij!
źródło
po prostu usuń „520_”
utf8mb4_unicode_520_ci
→utf8mb4_unicode_ci
źródło
łatwa wymiana
źródło
sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Właśnie otworzyłem plik dump.sql w Notepad ++ i wcisnąłem CTRL + H, aby znaleźć i zamienić ciąg „ utf8mb4_0900_ai_ci ” i zastąpiłem go „ utf8mb4_general_ci ”. Link do źródła https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/
źródło
Znajdź i zamień:
z
w całym pliku sql
źródło
general
iutf8
oba są krokami wstecz.Spóźniony na imprezę, ale w przypadku
WORDPRESS
instalacji:#1273 - Unknown collation: 'utf8mb4_unicode_520_ci
W phpmyadmin, pod
export method
>Format-specific options
(eksport niestandardowy)Ustawić :
MYSQL40
Jeśli spróbujesz teraz zaimportować, możesz teraz otrzymać kolejny komunikat o błędzie:
1064 - You have an error in your SQL syntax; .....
Dzieje się tak, ponieważ starsza
TYPE
opcja, która była synonimem,ENGINE
została usunięta w MySQL 5.5.Otwórz
.sql
plik, wyszukaj i zamień wszystkie instancjeod
TYPE=
doENGINE=
Teraz import powinien przebiegać bezproblemowo.
źródło
Uzyskiwanie błędu sortowania # 1273 - Nieznane sortowanie: „utf8mb4_unicode_520_ci” jest spowodowane różnicą między wersją MySQL, z której eksportujesz, a naszym serwerem MySQL, do którego importujesz. Zasadniczo biblioteka Wordpress dla nowszych wersji sprawdza, na jakiej wersji SQL działa Twoja witryna. Jeśli korzysta z MySQL w wersji 5.6 lub nowszej, zakłada użycie nowego i ulepszonego algorytmu sortowania Unicode (UCA) o nazwie „utf8mb4_unicode_520_ci”. To jest świetne, chyba że w końcu przeniesiesz swoją witrynę WordPress z nowszej wersji MySQL 5.6 do starszej wersji MySQL, starszej niż 5.6.
Aby rozwiązać ten problem, będziesz musiał albo edytować plik eksportu SQL, wyszukiwać i zamieniać, zmieniając wszystkie wystąpienia „utf8mb4_unicode_520_ci” na „utf8mb4_unicode_ci”. Lub wykonaj poniższe czynności, jeśli masz PHPMyAdmin:
źródło
W moim przypadku zastępuję go
utf8_general_ci
sedem w ten sposób:Po tym mogę go bez problemu zaimportować.
źródło