Error al importar base de datos utf8mb4_unicode_520_ci

Hoy un breve post sobre los errores al importar una base de datos de MySQL 5.6 a un servidor con MySQL 5.5. Últimamente cada vez nos estamos encontrando este caso más veces y la solución es simple.

Error de codificación al importar base de datos

La versión 5.5 de MySQL no soporta la codificación utf8mb4_unicode_520_ci sino que solo soporta la utf8mb4_unicode_ci.

Si importamos una web en Plesk con MySQL 5.5 desde un servidor con MySQL 5.6, nos dará el siguiente error:

Restoration Task April 15, 2018 05:08 PM Details
Warning: Restore domain "domain.com"
Execution of /opt/psa/admin/plib/api-cli/domain.php --update domain.com -guid e637980dff30 -creation-date 2017-01-10 -hosting true -hst_type phys -do-not-apply-skeleton -www-root httpdocs -ignore-nonexistent-options failed with return code 1. Stderr is An error occurred during domain update: Command options error: "-ip" option is required for "-hosting" option

Este error al final e investigando un poco es debido a que no puede importar la base de datos por un error de la codificación (aunque ahí eso no lo diga en ningún lado). Pero haciendo pruebas llegamos a esa conclusión.

Para poder importar la base de datos de MySQL 5.6 con codificación XXX en MySQL 5.5 con codificación YYY solamente hay que bajarse la base de datos, descomprimirla (si está comprimida) y reemplazar lo siguiente:

utf8mb4_unicode_520_ci

con

utf8mb4_unicode_ci

Y entonces la podemos volver a comprimir (si lo estaba antes) y subirla al servidor que la importará sin problemas y todo funcionará correctamente (aunque pueda parecer raro por el tema de cambio de codificación.

Reemplazar utf8mb4_unicode_520_ci con utf8mb4_unicode_ci

Si queréis algo más de información sobre las diferencias os dejo este texto en inglés de StackOverFlow:

For Unicode, collation names may include a version number to indicate the version of the Unicode Collation Algorithm (UCA) on which the collation is based. UCA-based collations without a version number in the name use the version-4.0.0 UCA weight keys. For example:

utf8_unicode_ci (with no version named) is based on UCA 4.0.0 weight keys >(http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt).

utf8_unicode_520_ci is based on UCA 5.2.0 weight keys (http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt).

For Unicode, the xxx_general_mysql500_ci collations preserve the pre-5.1.24 ordering of the original xxx_general_ci collations and permit upgrades for tables created before MySQL 5.1.24. For more information, see Section 2.11.3, “Checking Whether Tables or Indexes Must Be Rebuilt”, and Section 2.11.4, “Rebuilding or Repairing Tables or Indexes”.

Source : https://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html

¡Buen fin de semana!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los comentarios de esta página se procesan por un sistema automático de moderación por lo cual no siempre se publican de forma instantánea. Por favor respeta a los demás y ciñete al tema del post. Nos reservamos el derecho de eliminar cualquier comentario o enlace que nos parezca inadecuado o tenga una expresión de grosería, insulto, odio, hostilidad o negatividad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.