Cómo reparar el error de clasificación "utf8mb4_0900_ai_ci" al importar la base de datos de WordPress

Si está cambiando la instalación de WordPress de un servidor MySQL 8 a MySQL 5.7 (o inferior), lo más probable es que se encuentre con el 1273 - Intercalación desconocida: "utf8mb4_0900_ai_ci" Error al intentar importar la base de datos. Independientemente de las herramientas que utilice para importar o exportar la base de datos, no puede escapar de este error.

Sin embargo, si anteriormente ha ejecutado su blog en un servidor MySQL 5.7 y recientemente cambió a MySQL 8 pero ahora está cambiando a MySQL 5.7, entonces las tablas centrales de WordPress (publicaciones, taxonomías, opciones, comentarios, etc.) y cualquier complemento que instaló en el servidor MySQL 5.7 debería seguir usando la colación “utf8mb4_unicode_520_ci”.

Puede importar todas las tablas de su base de datos que utiliza la colación “utf8mb4_unicode_520_ci”. Entonces, lo que debe hacer es encontrar las tablas en su base de datos que usan la intercalación “utf8mb4_0900_ai_ci” y excluirlas del archivo de respaldo de la base de datos exportada.

🔎 Encuentre qué tablas usan la colación "utf8mb4_0900_ai_ci"

Necesita encontrar qué tablas en su base de datos utilizan la intercalación "utf8mb4_0900_ai_ci" para que podamos excluir esas tablas al exportar la base de datos.

Si tiene acceso SSH al servidor y las credenciales de acceso a la base de datos (que puede obtener totalmente del archivo wp-config.php), puede ejecutar el siguiente comando para encontrar fácilmente las tablas con la intercalación “utf8mb4_0900_ai_ci”.

mysqlshow -u username -p --status database | grep "utf8mb4_0900_ai_ci"

? Reemplace la nombre de usuario y base de datos con su base de datos y nombre de usuario en el comando anterior.

Ingrese su contraseña de usuario de la base de datos cuando se le solicite Introducir la contraseña: y tendrá la lista de tablas que utilizan la intercalación "utf8mb4_0900_ai_ci" en su base de datos.

Las tablas que usan la intercalación “utf8mb4_0900_ai_ci” deben ser solo de complementos que instaló después de cambiar a MySQL 8. Escriba los nombres de las tablas para que pueda excluirlas la próxima vez que exporte su base de datos.

💡 Consejo

Si no tiene acceso SSH al servidor, descargue el archivo de base de datos .sql en su computadora y ábralo con un editor de texto como Notepad ++ y use la función de búsqueda (Ctrl + F) para encontrar qué tablas usan "utf8mb4_0900_ai_ci" colación.

Exportar la base de datos excluyendo las tablas de clasificación "utf8mb4_0900_ai_ci"

Ahora que tiene los nombres de las tablas usando la intercalación "utf8mb4_0900_ai_ci", puede exportar un nuevo archivo de respaldo de base de datos que no incluye las tablas "utf8mb4_0900_ai_ci", por lo que puede importarlo a una instalación de WordPress que se ejecuta en un servidor MySQL 5.7.

Suponiendo que ya usa WP-CLI para exportar / importar la base de datos de WordPress, ejecute el siguiente comando para exportar su base de datos mientras excluye algunas de las tablas.

wp db export --exclude_tables = nombre_tabla, nombre_tabla, nombre_tabla

? Reemplazar nombre de la tabla en el comando anterior con los nombres reales de las tablas que utilizan la colación “utf8mb4_0900_ai_ci”.

Eso es. Ahora puede importar fácilmente su base de datos de WordPress al nuevo servidor que ejecuta MySQL 5.7.

? Nota IMPORTANTE

Para las tablas de la base de datos que excluyó de la copia de seguridad, asegúrese de volver a crear manualmente sus datos en el nuevo servidor. Dado que esas tablas son solo de complementos, verifique si esos complementos ofrecen una forma de exportar datos en la configuración del complemento o, de lo contrario, reconfigure el complemento en el nuevo servidor de la misma manera que se configuró en el servidor anterior.