Ako opraviť chybu porovnávania „utf8mb4_0900_ai_ci“ pri importe databázy WordPress

Ak prepínate svoju inštaláciu WordPress zo servera MySQL 8 na MySQL 5.7 (alebo nižšiu), s najväčšou pravdepodobnosťou narazíte na 1273 – Neznáme zoradenie: „utf8mb4_0900_ai_ci“ chyba pri pokuse o importovanie databázy. Bez ohľadu na to, aké nástroje použijete na import alebo export databázy, tejto chybe sa nemôžete vyhnúť.

Ak ste však predtým prevádzkovali svoj blog na serveri MySQL 5.7 a nedávno ste prešli na MySQL 8, ale teraz sa vraciate späť na MySQL 5.7, potom základné tabuľky WordPress (príspevky, taxonómie, možnosti, komentáre atď.) a akékoľvek doplnky nainštalovaný na server MySQL 5.7 by mal stále používať zoradenie „utf8mb4_unicode_520_ci“.

Môžete importovať všetky tabuľky z vašej databázy, ktorá používa porovnávanie „utf8mb4_unicode_520_ci“. Čo teda musíte urobiť, je nájsť tabuľky vo vašej databáze, ktorá používa porovnávanie „utf8mb4_0900_ai_ci“ a vylúčiť ich z exportovaného záložného súboru databázy.

🔎 Zistite, ktoré tabuľky používajú porovnávanie „utf8mb4_0900_ai_ci“

Musíte zistiť, ktoré tabuľky vo vašej databáze používajú zoradenie „utf8mb4_0900_ai_ci“, aby sme tieto tabuľky mohli pri exporte databázy vylúčiť.

Ak máte prístup SSH na server a poverenia na prístup k databáze (ktorý môžete úplne získať zo súboru wp-config.php), môžete spustiť nasledujúci príkaz, aby ste ľahko našli tabuľky s porovnávaním „utf8mb4_0900_ai_ci“.

mysqlshow -u užívateľské meno -p --databáza stavu | grep "utf8mb4_0900_ai_ci"

? Vymeňte užívateľské meno a databázy s vašou databázou a používateľským menom v príkaze vyššie.

Po zobrazení výzvy zadajte heslo používateľa databázy Zadajte heslo: a vo svojej databáze budete mať zoznam tabuliek pomocou porovnávania „utf8mb4_0900_ai_ci“.

Tabuľky používajúce porovnávanie „utf8mb4_0900_ai_ci“ by mali obsahovať iba pluginy, ktoré ste nainštalovali po prechode na MySQL 8. Zapíšte si názvy tabuliek, aby ste ich mohli pri ďalšom exporte databázy vylúčiť.

💡 Tip

Ak nemáte prístup SSH na server, stiahnite si databázový súbor .sql do svojho počítača a otvorte ho v textovom editore, akým je napríklad Notepad++ a pomocou funkcie vyhľadávania (Ctrl + F) zistite, ktoré tabuľky používajú „utf8mb4_0900_ai_ci“ zoraďovanie.

Exportujte databázu s výnimkou porovnávacích tabuliek „utf8mb4_0900_ai_ci“.

Teraz, keď máte názvy tabuliek pomocou porovnávania „utf8mb4_0900_ai_ci“, môžete exportovať nový záložný súbor databázy, ktorý neobsahuje tabuľky „utf8mb4_0900_ai_ci“, takže ho môžete importovať do inštalácie WordPress spustenej na serveri MySQL 5.7.

Za predpokladu, že už používate WP-CLI na export/import databázy WordPress, spustite nasledujúci príkaz na exportovanie databázy a vylúčte niektoré tabuľky.

wp db export --exclude_tables=názov_tabuľky,názov_tabuľky,názov_tabuľky

? Vymeňte názov_tabulky v príkaze vyššie so skutočnými názvami tabuliek, ktoré používajú porovnávanie „utf8mb4_0900_ai_ci“.

to je všetko. Teraz môžete jednoducho importovať svoju databázu WordPress na nový server so systémom MySQL 5.7.

? Dôležitá poznámka

Pre databázové tabuľky, ktoré ste vylúčili zo zálohy, nezabudnite manuálne znova vytvoriť ich údaje na novom serveri. Keďže tieto tabuľky obsahujú iba doplnky, skontrolujte, či tieto doplnky ponúkajú spôsob exportovania údajov v nastaveniach doplnku, prípadne prekonfigurujte doplnok na novom serveri rovnakým spôsobom, ako bol nastavený na starom serveri.