(Rozwiązane) Nieznane połączenie UTF8MB4_Unicode_520_ci

(Rozwiązane) Nieznane połączenie UTF8MB4_Unicode_520_ci

Zestaw jest zestawem reguł, które określają sposób porównywania i sortowania ciągów znaków na serwerze bazy danych. W tym samouczku omawiamy błąd napotkany podczas odbudowy bazy danych na innym serwerze.

Zobaczmy problem i rozwiązanie problemu, przed którymi stoi problem:

Problem:

Podczas migracji aplikacji WordPress stanąłem przed następującym błędem wraz z przywróceniem bazy danych MySQL. Identyfikator łączenia może się różnić w zależności od wersji MySQL.

Komunikat o błędzie:

Błąd 1273 (HY000) w linii 36 Nieznane połączenie: „UTF8MB4_unicode_520_ci” 

Oto rozwiązanie.

Rozwiązanie:

Po wyszukaniu błędu odkryłem, że serwer MySQL działający na drugim serwerze to starsza wersja niż źródło. Dlatego dowiadujemy się, że serwer docelowy nie obsługuje zestawu „UTF8MB4_Unicode_520_ci”.

Aby rozwiązać ten problem, zrobiłem niewielką zmianę w pliku kopii zapasowej. Edytuj plik kopii zapasowej bazy danych w edytorze tekstu i zastąp wszystkie wystąpienia „UTF8MB4_unicode_520_ci" z "utf8mb4_general_ci". Również, jeśli znalazłeś „Charset = UTF8MB4„Wymień to„Charset = UTF8".

Wymień poniższy ciąg:

Engine = Innodb Domyślny Charset = UTF8MB4 celate = UTF8MB4_unicode_520_ci; 

z:

Silnik = domyślny Charset = UTF8 COLLATE = utf8_general_ci; 

Zapisz plik kopii zapasowej i przywróć bazę danych.

Użytkownicy systemu Linux mogą użyć polecenia SED do bezpośrednio zastąpienia tekstu w plikach.

SED -I 'S/UTF8MB4_Unicode_520_ci/utf8_general_ci/g kopii zapasowej.SQL  sed -i 's/charset = UTF8MB4/charset = UTF8/G' Backup.SQL  

To wszystko, teraz baza danych jest pomyślnie przywracana bez żadnych błędów!

Mam nadzieję, że to rozwiązanie pomogło Ci rozwiązać „Nieznane zestawienie: „UTF8MB4_unicode_520_ci”„Problem z bazami danych MySQL.