Hoe u de sorteerfout "utf8mb4_0900_ai_ci" kunt oplossen bij het importeren van de WordPress-database

Als u uw WordPress-installatie overschakelt van een MySQL 8-server naar MySQL 5.7 (of lager), zult u hoogstwaarschijnlijk de 1273 - Onbekende sortering: 'utf8mb4_0900_ai_ci' fout bij het importeren van de database. Welke tools u ook gebruikt om de database te importeren of exporteren, u kunt niet aan deze fout ontsnappen.

Als u echter eerder uw blog op een MySQL 5.7-server hebt uitgevoerd en onlangs bent overgeschakeld naar een MySQL 8 maar nu terugschakelt naar MySQL 5.7, dan zijn de WordPress-kerntabellen (berichten, taxonomieën, opties, opmerkingen, enz.) En eventuele plug-ins die u op de MySQL 5.7-server hebt geïnstalleerd, moet nog steeds de sortering "utf8mb4_unicode_520_ci" gebruiken.

U kunt alle tabellen uit uw database importeren die de sortering "utf8mb4_unicode_520_ci" gebruikt. Dus wat u moet doen, is de tabellen in uw database zoeken die de sortering "utf8mb4_0900_ai_ci" gebruiken en ze uitsluiten van het geëxporteerde databaseback-upbestand.

🔎 Zoek welke tabellen de sortering "utf8mb4_0900_ai_ci" gebruiken

U moet uitzoeken welke tabellen in uw database de sortering "utf8mb4_0900_ai_ci" gebruiken, zodat we die tabellen kunnen uitsluiten bij het exporteren van de database.

Als u SSH-toegang tot de server en de inloggegevens voor databasetoegang hebt (die je volledig uit het bestand wp-config.php kunt halen), kunt u de volgende opdracht uitvoeren om gemakkelijk de tabellen met de sortering "utf8mb4_0900_ai_ci" te vinden.

mysqlshow -u gebruikersnaam -p --status database | grep "utf8mb4_0900_ai_ci"

? Vervang de gebruikersnaam en database met uw database en gebruikersnaam in de bovenstaande opdracht.

Voer uw gebruikerswachtwoord voor de database in wanneer u wordt gevraagd om: Voer wachtwoord in: en je hebt de lijst met tabellen met de sortering "utf8mb4_0900_ai_ci" in je database.

De tabellen die de sortering "utf8mb4_0900_ai_ci" gebruiken, mogen alleen plug-ins zijn die u hebt geïnstalleerd nadat u bent overgeschakeld naar MySQL 8. Noteer de namen van de tabellen, zodat u ze de volgende keer dat u uw database exporteert, kunt uitsluiten.

Tip

Als u geen SSH-toegang tot de server heeft, download dan het .sql-databasebestand op uw computer en open het met een teksteditor zoals Notepad++ en gebruik de zoekfunctie (Ctrl +F) om te vinden welke tabellen de "utf8mb4_0900_ai_ci" gebruiken sortering.

Export database met uitzondering van "utf8mb4_0900_ai_ci" verzameltabellen

Nu u de namen van de tabellen hebt die de sortering "utf8mb4_0900_ai_ci" gebruiken, kunt u een nieuw databaseback-upbestand exporteren dat de tabellen "utf8mb4_0900_ai_ci" niet bevat, zodat u het kunt importeren in een WordPress-installatie die draait op een MySQL 5.7-server.

Ervan uitgaande dat u WP-CLI al gebruikt om de WordPress-database te exporteren/importeren, voert u de volgende opdracht uit om uw database te exporteren en enkele tabellen uit te sluiten.

wp db export --exclude_tables=tabelnaam,tabelnaam,tabelnaam

? Vervangen tafel naam in de bovenstaande opdracht met de werkelijke namen van de tabellen die de sortering "utf8mb4_0900_ai_ci" gebruiken.

Dat is het. U kunt nu eenvoudig uw WordPress-database importeren naar de nieuwe server met MySQL 5.7.

? Belangrijke notitie

Voor databasetabellen die u van de back-up hebt uitgesloten, moet u ervoor zorgen dat u hun gegevens handmatig opnieuw maakt op de nieuwe server. Aangezien deze tabellen alleen van plug-ins zijn, moet u controleren of die plug-ins een manier bieden om gegevens te exporteren in de plug-in-instellingen of anders de plug-in opnieuw configureren op de nieuwe server op dezelfde manier als op de oude server.