Kaip ištaisyti „utf8mb4_0900_ai_ci“ palyginimo klaidą importuojant „WordPress“ duomenų bazę

Jei perkeliate „WordPress“ diegimą iš „MySQL 8“ serverio į „MySQL 5.7“ (arba senesnę), greičiausiai susidursite su 1273 – nežinomas palyginimas: „utf8mb4_0900_ai_ci“ klaida bandant importuoti duomenų bazę. Nesvarbu, kokius įrankius naudojate duomenų bazei importuoti ar eksportuoti, šios klaidos neišvengsite.

Tačiau jei anksčiau savo tinklaraštį paleidote MySQL 5.7 serveryje ir neseniai perėjote prie MySQL 8, bet dabar grįžtate prie MySQL 5.7, tada pagrindinės WordPress lentelės (įrašai, taksonomijos, parinktys, komentarai ir kt.) ir visi papildiniai Įdiegėte MySQL 5.7 serveryje, vis tiek turėtų būti naudojamas palyginimas „utf8mb4_unicode_520_ci“.

Galite importuoti visas lenteles iš savo duomenų bazės, kuri naudoja „utf8mb4_unicode_520_ci“ palyginimą. Taigi, ką jums reikia padaryti, tai savo duomenų bazėje rasti lenteles, kuriose naudojamas „utf8mb4_0900_ai_ci“ palyginimas, ir neįtraukti jas iš eksportuoto duomenų bazės atsarginės kopijos failo.

🔎 Raskite, kuriose lentelėse naudojamas „utf8mb4_0900_ai_ci“ palyginimas

Turite rasti, kurios jūsų duomenų bazės lentelės naudoja „utf8mb4_0900_ai_ci“ palyginimą, kad eksportuodami duomenų bazę galėtume neįtraukti šių lentelių.

Jei turite SSH prieigą prie serverio ir prieigos prie duomenų bazės kredencialus (kurį galite gauti iš wp-config.php failo), galite paleisti šią komandą, kad lengvai rastumėte lenteles su palyginimu „utf8mb4_0900_ai_ci“.

mysqlshow -u vartotojo vardas -p --status duomenų bazė | grep "utf8mb4_0900_ai_ci"

? Pakeiskite Vartotojo vardas ir duomenų bazėje su savo duomenų baze ir naudotojo vardu aukščiau esančioje komandoje.

Įveskite savo duomenų bazės vartotojo slaptažodį, kai būsite paraginti Įvesti slaptažodį: ir turėsite lentelių sąrašą, naudodami „utf8mb4_0900_ai_ci“ palyginimą savo duomenų bazėje.

Lentelės, kuriose naudojamas „utf8mb4_0900_ai_ci“ lyginimas, turėtų būti tik priedų, kuriuos įdiegėte perėję į „MySQL 8“. Užrašykite lentelių pavadinimus, kad galėtumėte jas neįtraukti, kai kitą kartą eksportuosite duomenų bazę.

💡 Patarimas

Jei neturite SSH prieigos prie serverio, atsisiųskite .sql duomenų bazės failą į savo kompiuterį ir atidarykite jį naudodami teksto rengyklę, pvz., Notepad++, ir naudokite paieškos funkciją (Ctrl + F), kad surastumėte, kuriose lentelėse naudojamas „utf8mb4_0900_ai_ci“. lyginimas.

Eksportuokite duomenų bazę, išskyrus „utf8mb4_0900_ai_ci“ palyginimo lenteles

Dabar, kai turite lentelių pavadinimus naudodami „utf8mb4_0900_ai_ci“ palyginimą, galite eksportuoti naują duomenų bazės atsarginės kopijos failą, kuriame nėra „utf8mb4_0900_ai_ci“ lentelių, kad galėtumėte importuoti jį į „WordPress“ diegimą, veikiantį „MySQL 5.7“ serveryje.

Darant prielaidą, kad jau naudojate WP-CLI eksportuodami / importuodami „WordPress“ duomenų bazę, paleiskite šią komandą, kad eksportuotumėte duomenų bazę, neįtraukdami kai kurių lentelių.

wp db export --exclude_tables=lentelės_pavadinimas,lentelės_pavadinimas,lentelės_pavadinimas

? Pakeiskite lentelės_pavadinimas aukščiau esančioje komandoje su tikrais lentelių pavadinimais, kuriose naudojamas „utf8mb4_0900_ai_ci“ palyginimas.

Viskas. Dabar galite lengvai importuoti savo „WordPress“ duomenų bazę į naują serverį, kuriame veikia „MySQL 5.7“.

? Svarbi pastaba

Duomenų bazių lentelių, kurias neįtraukėte į atsarginę kopiją, duomenis būtinai rankiniu būdu iš naujo sukurkite naujame serveryje. Kadangi šios lentelės yra tik įskiepių, patikrinkite, ar tie papildiniai suteikia galimybę eksportuoti duomenis į papildinio nustatymus arba iš naujo sukonfigūruokite papildinį naujame serveryje taip pat, kaip jis buvo nustatytas senajame serveryje.