Kako popraviti napako pri združevanju »utf8mb4_0900_ai_ci« pri uvozu baze podatkov WordPress

Če preklapljate svojo namestitev WordPress s strežnika MySQL 8 na MySQL 5.7 (ali nižjo), boste najverjetneje naleteli na 1273 – Neznana primerjava: 'utf8mb4_0900_ai_ci' napaka pri poskusu uvoza baze podatkov. Ne glede na to, katera orodja uporabljate za uvoz ali izvoz baze podatkov, se tej napaki ne morete izogniti.

Vendar, če ste pred tem zagnali svoj blog na strežniku MySQL 5.7 in ste pred kratkim prešli na MySQL 8, zdaj pa preklopite nazaj na MySQL 5.7, potem so glavne tabele WordPress (objave, taksonomije, možnosti, komentarji itd.) in morebitni vtičniki ki ste ga namestili na strežnik MySQL 5.7, bi morali še vedno uporabljati primerjavo »utf8mb4_unicode_520_ci«.

Vse tabele lahko uvozite iz svoje baze podatkov, ki uporablja primerjavo “utf8mb4_unicode_520_ci”. Torej, kar morate storiti, je poiskati tabele v svoji zbirki podatkov, ki uporablja primerjavo »utf8mb4_0900_ai_ci«, in jih izključiti iz izvožene datoteke varnostne kopije baze podatkov.

🔎 Poiščite, katere tabele uporabljajo primerjavo »utf8mb4_0900_ai_ci«

Ugotoviti morate, katere tabele v vaši zbirki podatkov uporabljajo primerjavo »utf8mb4_0900_ai_ci«, da lahko te tabele izključimo pri izvozu baze podatkov.

Če imate dostop SSH do strežnika in poverilnice za dostop do baze podatkov (ki ga lahko v celoti dobite iz datoteke wp-config.php), lahko zaženete naslednji ukaz, da preprosto najdete tabele s primerjavo »utf8mb4_0900_ai_ci«.

mysqlshow -u uporabniško ime -p --status baza podatkov | grep "utf8mb4_0900_ai_ci"

? Zamenjajte uporabniško ime in bazo podatkov z vašo zbirko podatkov in uporabniškim imenom v zgornjem ukazu.

Ko ste pozvani, vnesite uporabniško geslo za bazo podatkov Vnesite geslo: in v svoji bazi podatkov boste imeli seznam tabel, ki uporabljajo primerjavo »utf8mb4_0900_ai_ci«.

Tabele, ki uporabljajo primerjavo »utf8mb4_0900_ai_ci«, bi morale vsebovati samo vtičnike, ki ste jih namestili po prehodu na MySQL 8. Zapišite imena tabel, da jih boste lahko izključili ob naslednjem izvozu baze podatkov.

💡 Nasvet

Če do strežnika nimate dostopa po SSH, prenesite datoteko baze podatkov .sql na svoj računalnik in jo odprite z urejevalnikom besedil, kot je Notepad++, in uporabite funkcijo iskanja (Ctrl +F), da poiščete, katere tabele uporabljajo »utf8mb4_0900_ai_ci« primerjanje.

Izvozi bazo podatkov brez primerjalnih tabel »utf8mb4_0900_ai_ci«

Zdaj, ko imate imena tabel, ki uporabljajo primerjavo »utf8mb4_0900_ai_ci«, lahko izvozite novo datoteko varnostne kopije baze podatkov, ki ne vključuje tabel »utf8mb4_0900_ai_ci«, tako da jo lahko uvozite v namestitev WordPress, ki se izvaja na strežniku MySQL 5.7.

Ob predpostavki, da že uporabljate WP-CLI za izvoz/uvoz baze podatkov WordPress, zaženite naslednji ukaz za izvoz baze podatkov, pri tem pa izključite nekatere tabele.

wp db izvoz --exclude_tables=ime_tabele,ime_tabele,ime_tabele

? Zamenjati ime_tabele v zgornjem ukazu z dejanskimi imeni tabel, ki uporablja primerjavo »utf8mb4_0900_ai_ci«.

to je to. Zdaj lahko preprosto uvozite svojo zbirko podatkov WordPress v nov strežnik z MySQL 5.7.

? Pomembna opomba

Za tabele baze podatkov, ki ste jih izključili iz varnostne kopije, ročno ponovno ustvarite njihove podatke na novem strežniku. Ker so te tabele samo vtičniki, preverite, ali ti vtičniki ponujajo način za izvoz podatkov v nastavitvah vtičnika ali pa znova konfigurirajte vtičnik na novem strežniku na enak način, kot je bil nastavljen na starem strežniku.