Hur man åtgärdar "utf8mb4_0900_ai_ci" sorteringsfel vid import av WordPress-databas

Om du byter din WordPress-installation från en MySQL 8-server till MySQL 5.7 (eller senare), kommer du troligen att stöta på 1273 – Okänd sammanställning: 'utf8mb4_0900_ai_ci' fel när du försöker importera databasen. Oavsett vilka verktyg du använder för att importera eller exportera databasen, kan du inte undgå det här felet.

Men om du tidigare har kört din blogg på en MySQL 5.7-server och nyligen bytt till en MySQL 8 men nu byter tillbaka till MySQL 5.7, då är de viktigaste WordPress-tabellerna (inlägg, taxonomier, alternativ, kommentarer etc.) och eventuella plugins du installerade på MySQL 5.7-servern bör fortfarande använda "utf8mb4_unicode_520_ci"-sorteringen.

Du kan importera alla tabeller från din databas som använder "utf8mb4_unicode_520_ci"-sorteringen. Så vad du behöver göra är att hitta tabellerna i din databas som använder "utf8mb4_0900_ai_ci"-kollation och exkludera dem från den exporterade databasbackupfilen.

🔎 Hitta vilka tabeller som använder "utf8mb4_0900_ai_ci"-sorteringen

Du måste hitta vilka tabeller i din databas som använder "utf8mb4_0900_ai_ci"-kollationen så att vi kan utesluta dessa tabeller när vi exporterar databasen.

Om du har SSH-åtkomst till servern och autentiseringsuppgifterna för databasen (vilket du helt och hållet kan få från filen wp-config.php), kan du köra följande kommando för att enkelt hitta tabellerna med "utf8mb4_0900_ai_ci"-kollation.

mysqlshow -u användarnamn -p --statusdatabas | grep "utf8mb4_0900_ai_ci"

? Ersätt Användarnamn och databas med din databas och användarnamn i kommandot ovan.

Ange ditt databasanvändarlösenord när du uppmanas att göra det Skriv in lösenord: och du kommer att ha en lista över tabeller som använder "utf8mb4_0900_ai_ci"-sorteringen i din databas.

Tabellerna som använder "utf8mb4_0900_ai_ci"-kollation bör endast bestå av plugins som du installerade efter att du bytte över till MySQL 8. Skriv ner namnen på tabellerna så att du kan exkludera dem nästa gång du exporterar din databas.

💡 Tips

Om du inte har SSH-åtkomst till servern, ladda ner .sql-databasfilen på din dator och öppna den med en textredigerare som Notepad++ och använd sökfunktionen (Ctrl +F) för att hitta vilka tabeller som använder "utf8mb4_0900_ai_ci" sammanställning.

Exportera databas exklusive "utf8mb4_0900_ai_ci" sorteringstabeller

Nu när du har namnen på tabellerna med "utf8mb4_0900_ai_ci"-kollation, kan du exportera en ny databassäkerhetskopieringsfil som inte inkluderar "utf8mb4_0900_ai_ci"-tabellerna så att du kan importera den till en WordPress-installation som körs på en MySQL 5.7-server.

Förutsatt att du redan använder WP-CLI för att exportera/importera WordPress-databas, kör följande kommando för att exportera din databas samtidigt som du utesluter några av tabellerna.

wp db export --exclude_tables=tabellnamn, tabellnamn, tabellnamn

? Byta ut tabellnamn i kommandot ovan med de faktiska namnen på tabellerna som använder "utf8mb4_0900_ai_ci"-kollation.

Det är allt. Du kan nu enkelt importera din WordPress-databas till den nya servern som kör MySQL 5.7.

? Viktig notering

För databastabeller som du uteslutit från säkerhetskopieringen, se till att manuellt återskapa deras data på den nya servern. Eftersom dessa tabeller endast är av plugins, kontrollera om dessa plugins erbjuder ett sätt att exportera data i plugin-inställningarna eller annars konfigurera om plugin på den nya servern på samma sätt som den konfigurerades på den gamla servern.