Come correggere l'errore di confronto "utf8mb4_0900_ai_ci" durante l'importazione del database di WordPress

Se stai passando la tua installazione di WordPress da un server MySQL 8 a MySQL 5.7 (o precedente), molto probabilmente incontrerai il 1273 – Collazione sconosciuta: 'utf8mb4_0900_ai_ci' errore durante il tentativo di importare il database. Indipendentemente dagli strumenti che utilizzi per importare o esportare il database, non puoi sfuggire a questo errore.

Tuttavia, se in precedenza hai eseguito il tuo blog su un server MySQL 5.7 e di recente sei passato a MySQL 8 ma ora stai tornando a MySQL 5.7, le tabelle principali di WordPress (post, tassonomie, opzioni, commenti, ecc.) e qualsiasi plug-in che hai installato sul server MySQL 5.7 dovrebbe ancora utilizzare le regole di confronto "utf8mb4_unicode_520_ci".

Puoi importare tutte le tabelle dal tuo database che utilizza le regole di confronto "utf8mb4_unicode_520_ci". Quindi quello che devi fare è trovare le tabelle nel tuo database che utilizzano le regole di confronto "utf8mb4_0900_ai_ci" ed escluderle dal file di backup del database esportato.

🔎 Trova le tabelle che utilizzano le regole di confronto "utf8mb4_0900_ai_ci"

Devi trovare quali tabelle nel tuo database utilizzano le regole di confronto "utf8mb4_0900_ai_ci" in modo che possiamo escludere quelle tabelle durante l'esportazione del database.

Se si dispone dell'accesso SSH al server e delle credenziali di accesso al database (che puoi ottenere totalmente dal file wp-config.php), puoi eseguire il comando seguente per trovare facilmente le tabelle con le regole di confronto "utf8mb4_0900_ai_ci".

mysqlshow -u nome utente -p --status database | grep "utf8mb4_0900_ai_ci"

? Sostituisci il nome utente e Banca dati con il tuo database e nome utente nel comando sopra.

Inserisci la password dell'utente del database quando richiesto Inserire la password: e avrai l'elenco delle tabelle utilizzando le regole di confronto "utf8mb4_0900_ai_ci" nel tuo database.

Le tabelle che utilizzano le regole di confronto "utf8mb4_0900_ai_ci" dovrebbero essere solo dei plugin che hai installato dopo il passaggio a MySQL 8. Annota i nomi delle tabelle in modo da poterle escludere la prossima volta che esporti il ​​database.

Suggerimento

Se non hai accesso SSH al server, scarica il file di database .sql sul tuo computer e aprilo con un editor di testo come Notepad++ e usa la funzione di ricerca (Ctrl + F) per trovare quali tabelle utilizzano "utf8mb4_0900_ai_ci" collazione.

Esporta database escludendo le tabelle di confronto "utf8mb4_0900_ai_ci"

Ora che hai i nomi delle tabelle utilizzando le regole di confronto "utf8mb4_0900_ai_ci", puoi esportare un nuovo file di backup del database che non include le tabelle "utf8mb4_0900_ai_ci" in modo da poterlo importare in un'installazione di WordPress in esecuzione su un server MySQL 5.7.

Supponendo che tu stia già utilizzando WP-CLI per esportare/importare il database WordPress, esegui il comando seguente per esportare il tuo database escludendo alcune tabelle.

wp db export --exclude_tables=nome_tabella,nome_tabella,nome_tabella

? Sostituire nome_tabella nel comando sopra con i nomi effettivi delle tabelle che utilizzano le regole di confronto "utf8mb4_0900_ai_ci".

Questo è tutto. Ora puoi importare facilmente il tuo database WordPress sul nuovo server che esegue MySQL 5.7.

? Nota importante

Per le tabelle del database che hai escluso dal backup, assicurati di ricreare manualmente i loro dati sul nuovo server. Poiché queste tabelle sono solo di plug-in, controlla se tali plug-in offrono un modo per esportare i dati nelle impostazioni del plug-in oppure riconfigurare il plug-in sul nuovo server nello stesso modo in cui è stato configurato sul vecchio server.