Obtenga hoy mismo el mejor plugin de copia de seguridad y migración de WordPress
Obtenga Duplicator ahora

Documentación del duplicador

Documentación, materiales de referencia y tutoriales para Duplicator

Problemas de compatibilidad de bases de datos

Este artículo proporciona instrucciones detalladas para resolver varios problemas de compatibilidad de bases de datos MySQL, incluyendo problemas de compatibilidad y errores de cotejo de tablas.

Problemas de compatibilidad

Para evitar problemas de incompatibilidad con la base de datos, asegúrese de que las versiones de la base de datos entre los servidores de compilación y de instalación son lo más parecidas posible. Si la copia de seguridad se creó en una versión de base de datos más reciente que la del servidor donde se está instalando, es posible que surjan problemas.

Lo mejor es asegurarse de que el servidor en el que se ejecuta el instalador tiene el mismo número de versión o superior al del servidor en el que se creó. Si las versiones mayor y menor son iguales o cercanas (por ejemplo, [5.7 a 5.6]), la migración debería funcionar sin problemas. Un par de versiones de [5.7 a 5.1] es más probable que cause problemas a menos que tenga una configuración muy simple. Si las versiones están demasiado separadas, trabaje con su proveedor de alojamiento para actualizar el motor MySQL en este servidor.

Solución 1: FORMATO UTF8MB4

Si la versión actual del servidor MySQL detectada es inferior a 5.5.3 (versión del 8 de abril de 2010), no funcionará el soporte para tablas utf8mb4. El formato utf8mb4 sólo está soportado en MySQL server 5.5.3+. Se recomienda encarecidamente actualizar la versión del servidor MySQL en este servidor para que sea más compatible con las versiones recientes de WordPress y evitar problemas con los errores de instalación.

Solución 2: ENTRADAS UTF8

Si se detectan caracteres no ASCII como parte de la cadena de conexión a la base de datos y el servidor MySQL no está configurado correctamente, no podrá conectarse. Este problema puede resolverse actualizando la configuración my.ini de MySQL.
Añada el valor character_set_server=utf8 en [mysqld] y reinicie el servidor de base de datos. Puede que sólo sea necesario descomentar este valor.

Solución 3: AJUSTES MARIA-DB

Si aparece una versión de 10.N.N entonces la distribución de la base de datos es un sabor MariaDB de MySQL. Aunque las distribuciones son muy parecidas, existen algunas diferencias sutiles. Algunos sistemas operativos reportarán la versión como "5.5.5-10.1.21-MariaDB" mostrando la correlación de ambas. Por favor visite la página en línea MariaDB versus MySQL - Compatibilidad para más detalles.

Tenga en cuenta que algunos mensajes son simplemente avisos. Se recomienda encarecidamente continuar con el proceso de instalación y vigilar de cerca el archivo installer-log.txt junto con el informe de instalación que se encuentra en el paso 3 del instalador. Asegúrese de buscar cualquier aviso/advertencia/error en estos lugares para validar que el proceso de instalación no detectó ningún error. Si encuentra algún problema, visite las páginas de preguntas frecuentes y consulte la pregunta "¿Cómo resolver errores de base de datos o advertencias generales en el informe de instalación?"

Solución 4: CREAR TABLAS

La creación de tablas en MySQL y MariaDB son muy parecidas; sin embargo, hay algunas pequeñas diferencias que a veces (no es común) pueden causar problemas. Para ver las diferencias entre cada uno, ver los dos conjuntos de documentación aquí:

Como puede ver, no coinciden (MariaDB tiene opciones que MySQL no), así que cuando intente ejecutar una consulta CREATE que funcionó en MariaDB pero que tiene alguna opción de tabla que MySQL no soporta, puede fallar. La solución actual es eliminar las opciones de tabla ofensivas del volcado de la base de datos haciendo una búsqueda y reemplazo manual en el archivo.

Problemas de cotejo de tablas

¿Cómo resolver los errores de modo de compatibilidad y "Cotejo desconocido"?

Hay 4 maneras de resolver este problema. La opción 1 es la forma más rápida, sencilla y segura de resolver este problema.

Visión general de la intercalación desconocida

Un error "Unknown collation" significa que el servidor MySQL en el que se está instalando (servidor de destino) es más antiguo que el motor MySQL en el que creó la copia de seguridad. Un mensaje de error como:

ERROR error de base de datos escribir 'Unknown collation: 'utf8mb4_unicode_ci'
se activará porque la versión de MySQL que se está utilizando no soporta este formato de tabla. Puede ver la comparación de la versión del servidor MySQL haciendo clic en el botón "Probar conexión" del instalador o visualizando el archivo installer-log.txt. El resultado será algo parecido a

VERSIÓN MYSQL: Este Servidor: 5.4.22 - Servidor de compilación: 5.7.10

Opción 1 - Actualizar el software de la base de datos

La forma más limpia y segura de solucionar el problema "Unknown Collation" es actualizar su servidor MySQL de destino a la misma versión o a una más reciente que aquella en la que se creó la copia de seguridad. Los errores de formato más comunes incluyen:

  • utf8mb4_unicode_ci: Se requiere el servidor MySQL 5.5.3+.
  • utf8mb4_unicode_520_ci: Se requiere MySQL server 5.6+.

La mejor solución: La mejor y más fácil manera de resolver este problema es pedirle a tu proveedor que mueva tu cuenta a un servidor MySQL que soporte el tipo de cotejo que necesitas (ver ejemplo anterior). Simplemente dales el mensaje de error que recibes y ellos te ayudarán a moverte al servidor correcto.

La mayoría de los proveedores no actualizan el servidor en el que se encuentra su sitio web; sin embargo, deberían poder trasladar fácilmente su cuenta a un servidor más nuevo. Se trata de una práctica muy habitual y un buen proveedor debería poder ayudarte con bastante facilidad.

Si está ejecutando cualquier versión inferior a 5.5.3 entonces usted está usando una versión muy anticuada del servidor MySQL. 5.5.3 fue lanzado en 2010, lo que significa que la versión del servidor MySQL que está utilizando es aún más antigua. Recomendamos encarecidamente a los usuarios que trabajen con sus proveedores de alojamiento para utilizar software actualizado para mejorar la seguridad y el rendimiento y para cumplir con las actualizaciones del núcleo de WordPress. No dejes que un host de mierda utilice software obsoleto en tu sitio.

Opción 2 - Conjunto de caracteres e intercalación por defecto

En el instalador, en el paso 2 de las opciones, la casilla "Legacy" ya no existe. Sin embargo, ahora se detecta y establece automáticamente. Si el conjunto de caracteres y la intercalación no se definen explícitamente, aparecerá un aviso indicando que se utilizarán el conjunto de caracteres y la intercalación por defecto.

Al crear una tabla de base de datos, es posible que la versión de MySQL utilizada no admita el tipo de cotejo de la versión de MySQL en la que se creó la tabla. En este caso, el instalador utilizará automáticamente un tipo de cotejo alternativo para intentar crear la tabla.

Opción 3 - Ejecutar el modo de compatibilidad

El modo de compatibilidad mysqldump ayuda a producir una salida de script SQL de base de datos que es más compatible con otros sistemas de base de datos o con servidores MySQL antiguos.
El Duplicador soporta varios modos de compatibilidad, todos los cuales sólo están disponibles cuando el modo mysqldump está habilitado en el plugin. El modo de compatibilidad puede ser habilitado cuando se construye una copia de seguridad usando la opción mysqldump.

El Duplicador sólo permitirá el modo de compatibilidad durante el proceso de creación. No se permite cuando se crean plantillas o con programaciones. La razón de esta configuración es desalentar el uso de estos ajustes y solucionar el verdadero problema-que es actualizar su servidor de base de datos.

Actualizaciones de bases de datos: El modo de compatibilidad sólo debe utilizarse como último recurso. El enfoque recomendado para solucionar problemas de base de datos es asegurarse de que ambos servidores de base de datos están actualizados y muy cerca en números de versión (ver Opción 1). Por ejemplo, si el servidor de base de datos en el que creaste la copia de seguridad es 5.7.5, el servidor de base de datos en el que instalaste la copia de seguridad debería ser al menos 5.7.N. Si es posible, pida a su host o administrador del servidor que actualice el servidor MySQL a una versión más reciente. Si tu host no actualiza a una versión reciente, pídeles que actualicen a una versión lo más alta posible.

Conservación de datos: Aunque existen varias soluciones en Internet (Opción 4) que explican cómo modificar el archivo SQL actual o utilizar el modo de compatibilidad mysqldump, el principal problema subyacente es que ha almacenado los datos en un formato y ahora va a convertirlos. Estas técnicas pueden provocar pérdidas de datos y problemas de incompatibilidad más adelante. El enfoque correcto es actualizar el software MySQL.

Considera la posibilidad de probar ambos modos:

  • Duplicator soporta actualmente dos modos diferentes: Mysqldump y PHP Mode (véase la opción Configuración " Copias de seguridad).
  • Si te encuentras con problemas de caracteres y se te acaban las opciones, puedes plantearte intentar crear la base de datos en ambos modos para ver si uno u otro resuelve los problemas.

Opción 4 - Configuraciones manuales

Estas opciones son para usuarios avanzados y deben realizarse con precaución. Las opciones requieren la actualización del script database.sql o la actualización de los tipos de cotejo de las tablas de la base de datos de origen. A continuación se muestran tres enfoques diferentes; sólo se requiere una opción para solucionar el problema.

Actualizar database.sql

Para los problemas de "cotejo desconocido" puede intentar los siguientes pasos:

  1. Extraiga el archivo zip manualmente.
  2. Abra el archivo database.sql con el bloc de notas y busque y reemplace las colaciones. Por ejemplo
    • sustituir: 'utf8mb4' por 'utf8'
    • replace: 'utf8_unicode_520_ci' with 'utf8_general_ci'

Pruebe siempre estas opciones primero en un entorno aislado y nunca en un sitio de producción hasta que se sienta cómodo con los resultados.
A continuación, vaya al archivo installer.php en el servidor y seleccione Avanzado y marque "Extracción manual".
Esto también se puede intentar con otras colaciones (es decir, sustituya "collation_type_1" por "collation_type_2").

Actualizar la base de datos fuente con el código

Esta opción requiere que realmente entienda su sistema y que haya hecho copias de seguridad con antelación. El script le permitirá modificar la intercalación en el servidor de compilación para que sea compatible con el servidor de destino. El script completo se puede ver en Stack Overflow en: http://stackoverflow.com/a/29939906/2808424

Actualizar la base de datos fuente con el IDE

Si no te sientes cómodo ejecutando el código anterior, también puedes utilizar un IDE o una herramienta GUI que te permita cambiar manualmente los cotejos de las tablas, ya sea con sentencias SQL o a través de una interfaz. De nuevo, estas opciones requieren que conozcas bien tu sistema y que hayas hecho copias de seguridad con antelación.

A continuación encontrará algunas instrucciones paso a paso fáciles de seguir para actualizar las colaciones a través de un IDE como phpMyAdmin:

¿Le ha resultado útil este artículo?