Introducción
Una comparación es un conjunto de reglas que define cómo comparar y clasificar cadenas de caracteres en un servidor de base de datos. En este tutorial, discutiremos un error encontrado al restaurar la base de datos en un servidor.
Veamos el problema y la solución al problema enfrentado recientemente.
El problema
Mientras migraba una aplicación de WordPress, encontré el siguiente error con la recuperación de la base de datos MySQL. El ID de comparación puede variar según la versión de MySQL.
Mensaje de error:
Error 1273 (HY000) at line 36 Unknown collation: 'utf8mb4_unicode_520_ci'
Aquí hay una solución para usted.
La solución
Después de buscar el error, descubrí que el servidor MySQL que se ejecuta en el otro servidor es una versión más antigua que la fuente. Entonces encontramos que el servidor de destino no admite la intercalación ' utf8mb4_unicode_520_ci '.
Para solucionar esto, hice un pequeño cambio en el archivo de copia de seguridad. Edite el archivo de copia de seguridad de la base de datos en el editor de texto y reemplace todas las apariciones de " utf8mb4_unicode_520_ci " con " utf8mb4_general_ci ". Además, si encontró " CHARSET = utf8mb4 ", reemplácelo con " CHARSET = utf8 ".
Reemplace esta cadena:
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Con lo siguiente:
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Guarde el archivo de copia de seguridad y restaure la base de datos.
Los usuarios del sistema Linux pueden usar el comando sed para reemplazar directamente el texto en los archivos:
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' backup.sql
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql
Eso es todo, ahora la base de datos se ha restaurado con éxito sin errores.
Conclusión
Con suerte, esta solución lo ayudó a resolver el problema de " Intercalación desconocida: 'utf8mb4_unicode_520_ci " con las bases de datos MySQL.