Introduzione
Un confronto è un insieme di regole che definisce come confrontare e ordinare le stringhe di caratteri in un server di database. In questo tutorial discuteremo di un errore riscontrato durante il ripristino del database su un server.
Vediamo il problema e la soluzione al problema affrontato di recente.
Il problema
Durante la migrazione di un'applicazione WordPress, ho riscontrato il seguente errore con il ripristino del database MySQL. L'ID di confronto può variare in base alla versione di MySQL.
Messaggio di errore:
Error 1273 (HY000) at line 36 Unknown collation: 'utf8mb4_unicode_520_ci'
Ecco a voi una soluzione.
La soluzione
Dopo aver cercato l'errore, ho scoperto che il server MySQL in esecuzione sull'altro server è una versione precedente rispetto all'origine. Quindi scopriamo che il server di destinazione non supporta le regole di confronto 'utf8mb4_unicode_520_ci'.
Per risolvere questo problema, ho apportato una piccola modifica al file di backup. Modifica il file di backup del database nell'editor di testo e sostituisci tutte le occorrenze di "utf8mb4_unicode_520_ci" con "utf8mb4_general_ci". Inoltre, se hai trovato "CHARSET=utf8mb4", sostituiscilo con "CHARSET=utf8".
Sostituisci questa stringa:
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Con la seguente:
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Salva il file di backup e ripristina il database.
Gli utenti del sistema Linux possono utilizzare il comando sed per sostituire direttamente il testo nei file:
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' backup.sql
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql
Ecco fatto, ora il database è stato ripristinato correttamente senza errori.
Conclusione
Si spera che questa soluzione ti abbia aiutato a risolvere il problema "Unknown collation: ‘utf8mb4_unicode_520_ci " con i database MySQL.