Introducción
La comparación es un conjunto de reglas que determinan cómo comparar y clasificar cadenas de caracteres en el servidor de la base de datos. En esta guía, estamos discutiendo un error que ocurrió al restaurar una base de datos en un servidor diferente.
Echemos un vistazo al problema y la solución al problema que encontramos recientemente:
Problemas
Al migrar una aplicación web, recibí el siguiente error al restaurar la base de datos a otro servidor. El ID de asignación puede variar según la versión de MySQL.
Mensaje de error:
Error 1273 (HY000) at line 25 Unknown collation: 'utf8mb4_0900_ai_ci'
respondedor
Después de investigar un poco, descubrí que el servidor MySQL que se ejecuta en el servidor de destino tiene una versión más antigua que la fuente. Entonces, obtuvimos que el servidor de destino no contiene la clasificación requerida de la base de datos.
Así que hagamos un pequeño cambio en el archivo de copia de seguridad para solucionar este problema. Edite el archivo de respaldo de la base de datos en un editor de texto y reemplace " utf8mb4_0900_ai_ci " con " utf8mb4_general_ci " y " CHARSET=utf8mb4 " con " CHARSET=utf8 ".
Reemplace la línea a continuación:
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
con:
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Guarde el archivo y restaure la base de datos.
Los usuarios de Linux pueden usar el comando sed para reemplazar directamente el texto en los archivos.
sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' backup.sql
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql
La base de datos se restauró con éxito.
Conclusión
Espero que esta solución le haya ayudado a solucionar el problema " Colección desconocida: 'utf8mb4_0900_ai_ci' ".