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.