(Rozwiązane) Nieznane połączenie UTF8MB4_0900_AI_CI
- 1941
- 333
- Roland Sokół
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 internetowej otrzymałem poniższy błąd, przywracając bazę danych na innym serwerze. Identyfikator łączenia może się różnić w zależności od wersji MySQL.
Komunikat o błędzie:
Błąd 1273 (HY000) w linii 25 Nieznane połączenie: „UTF8MB4_0900_AI_CI”
Zobacz zrzut ekranu błędu podczas odbudowy bazy danych.
Oto rozwiązanie.
Rozwiązanie
Po małym badaniu odkryłem, że serwer MySQL działający w miejscu docelowym jest starszą wersją niż źródło. Więc mamy, że serwer docelowy nie zawiera wymaganej bazy danych.
Następnie wykonujemy małą poprawkę w pliku kopii zapasowej, aby to rozwiązać. Edytuj plik kopii zapasowej bazy danych w edytorze tekstu i wymień „UTF8MB4_0900_AI_CI" z "utf8mb4_general_ci" I "Charset = UTF8MB4" z "Charset = UTF8".
Wymień poniższy ciąg:
Silnik = Domyślny charakter innodb = UTF8MB4 celate = UTF8MB4_0900_AI_CI;
z:
Silnik = domyślny Charset = UTF8 COLLATE = utf8_general_ci;
Zapisz swój plik 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_0900_AI_CI/UTF8_GENERAL_ci/G' Backup.SQL
sed -i 's/charset = UTF8MB4/charset = UTF8/G' Backup.SQL
Że to. Po powyższych zmianach baza danych została pomyślnie przywrócona!
Mam nadzieję, że to rozwiązanie pomogło Ci rozwiązać ”Nieznane połączenie: „UTF8MB4_0900_AI_CI”" wydanie.
- « Jak zmienić hasło użytkownika w systemie Windows Server 2019
- Jak zainstalować Docker Compose on Ubuntu 20.04 »