Slik fikser du "utf8mb4_0900_ai_ci" sorteringsfeil når du importerer WordPress-database

Hvis du bytter WordPress-installasjonen fra en MySQL 8-server til MySQL 5.7 (eller lavere), vil du mest sannsynlig støte på 1273 - Ukjent sammenstilling: 'utf8mb4_0900_ai_ci' feil når du prøver å importere databasen. Uansett hvilke verktøy du bruker til å importere eller eksportere databasen, kan du ikke unnslippe denne feilen.

Men hvis du tidligere har kjørt bloggen din på en MySQL 5.7-server og nylig byttet til en MySQL 8, men nå bytter tilbake til MySQL 5.7, så er de viktigste WordPress-tabellene (innlegg, taksonomier, alternativer, kommentarer osv.) og eventuelle plugins du installerte på MySQL 5.7-serveren skal fortsatt bruke "utf8mb4_unicode_520_ci"-kollasjonen.

Du kan importere alle tabeller fra databasen din som bruker "utf8mb4_unicode_520_ci"-kollasjonen. Så det du trenger å gjøre er å finne tabellene i databasen din som bruker "utf8mb4_0900_ai_ci"-kollasjon og ekskludere dem fra den eksporterte databasesikkerhetskopieringsfilen.

🔎 Finn hvilke tabeller som bruker "utf8mb4_0900_ai_ci"-kollasjonen

Du må finne hvilke tabeller i databasen som bruker "utf8mb4_0900_ai_ci"-kollasjonen slik at vi kan ekskludere disse tabellene når du eksporterer databasen.

Hvis du har SSH-tilgang til serveren og databasetilgangslegitimasjonen (som du helt kan få fra filen wp-config.php), kan du kjøre følgende kommando for enkelt å finne tabellene med "utf8mb4_0900_ai_ci"-kollasjon.

mysqlshow -u brukernavn -p --statusdatabase | grep "utf8mb4_0900_ai_ci"

? Bytt ut brukernavn og database med din database og brukernavn i kommandoen ovenfor.

Skriv inn brukerpassordet for databasen når du blir bedt om det Oppgi passord: og du vil ha listen over tabeller som bruker "utf8mb4_0900_ai_ci"-kollasjonen i databasen din.

Tabellene som bruker "utf8mb4_0900_ai_ci"-kollasjon bør kun være av plugins som du installerte etter å ha byttet over til MySQL 8. Skriv ned navnene på tabellene slik at du kan ekskludere dem neste gang du eksporterer databasen.

💡 Tips

Hvis du ikke har SSH-tilgang til serveren, last ned .sql-databasefilen på datamaskinen din og åpne den med et tekstredigeringsprogram som Notepad++ og bruk søkefunksjonen (Ctrl +F) for å finne hvilke tabeller som bruker "utf8mb4_0900_ai_ci" sammenstilling.

Eksporter database unntatt "utf8mb4_0900_ai_ci" sorteringstabeller

Nå som du har navnene på tabellene ved hjelp av "utf8mb4_0900_ai_ci"-kollasjon, kan du eksportere en ny databasesikkerhetskopieringsfil som ikke inkluderer "utf8mb4_0900_ai_ci"-tabellene, slik at du kan importere den til en WordPress-installasjon som kjører på en MySQL 5.7-server.

Forutsatt at du allerede bruker WP-CLI til å eksportere/importere WordPress-databasen, kjør følgende kommando for å eksportere databasen din mens du ekskluderer noen av tabellene.

wp db eksport --exclude_tables=tabellnavn, tabellnavn, tabellnavn

? Erstatte tabellnavn i kommandoen ovenfor med de faktiske navnene på tabellene som bruker "utf8mb4_0900_ai_ci"-kollasjon.

Det er det. Du kan nå enkelt importere WordPress-databasen din til den nye serveren som kjører MySQL 5.7.

? Viktig notat

For databasetabeller som du ekskluderte fra sikkerhetskopien, sørg for å manuelt gjenopprette dataene på den nye serveren. Siden disse tabellene kun består av plugin-moduler, må du sjekke om disse pluginene tilbyr en måte å eksportere data i plugin-innstillingene eller omkonfigurere plugin-en på den nye serveren på samme måte som den ble satt opp på den gamle serveren.