(Rozwiązane) Nieznane połączenie UTF8MB4_Unicode_520_ci
- 2327
- 2
- Maria Piwowarczyk
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.
- « Jak wykrywać i obsługiwać błędy w skryptach Bash
- Konwertuj ciąg na małe litery w Bash - łatwiej niż myślisz »