/

27 marzo, 2021

Errores solucionados en la migración de BBDD

En este artículo vamos a solucionar una serie de errores comunes al migrar una base de datos, importar desde mysql,…

La situación es la siguiente:
Tenía que migrar una serie de bases de datos sql desde un hosting con Cpanel o un servidor dedicado con panel de control VestaCP.
Me ha provocado multitud de problemas y errores, algunos comunes y otros no tanto, que tienen una solución muy sencilla una vez te han explicado donde está el error.

El proceso sencillo para migrar una BBDD desde CPANEL sería el siguiente:

  1. Generar una copia de la Base de datos desde “Database Backups” de Cpanel
  2. Descargar la Base de datos desde “Queue”
  3. Crear una Base de datos nueva en el panel de Control VESTA (ojo a este punto por que aquí está la solución a los errores que mas tarde me aparecieron)
  4. Acceder a la BBDD desde PHPMYADMIN
  5. Acceder a la pestaña importar, seleccionar la copia de seguridad e importar la base de datos generada en el posting original…. Y ya esta.

O no… en un un mundo ideal siguiendo este proceso se exporta la base de datos y se importa desde el nuevo hosting pero ¿Que ocurre cuando empiezan a dar errores en este proceso?

Pues que puede que pases días hasta encontrar la solución, sobre todo cuando no la encuentras en internet y todo lo que pruebas te sigue dando errores o te provoca errores diferentes.

¿Que tener en cuenta al migrar una bases de datos?

Para migrar una base de datos sin problemas hay que tener en cuenta estos puntos que, en muchas ocasiones se dan por hechos pero cualquier error en estos pasos puede provocar una importación errónea e incluso una saturación hasta el bloqueo del sistema de bases de datos del servidor.

  1. Tipo de tablas de la base de datos de origen (InnoDB o MyISAM)
  2. Cotejamiento de la Base de datos de origen: utf8, utf8mb4_general_ci, latín,…
  3. Versión de mariadb o de mysql del servidor de origen.
  4. Cotejamiento de la Base de datos del servidor de destino.
  5. Versión de mariadb o de mysql del servidor de destino.

Errores en el archivo error.log

Estos son solo algunos de los errores que te aparecen en el blog de errores de WordPress con una BBDD corrupta o mal importada. Siguiendo los pasos anteriores todos estos errores se solucionan. Lee hasta el final para ver

[php7:notice] [pid 6805] Error Duplicate entry '0' for key 'PRIMARY' de la base de datos de WordPress para la consulta INSERT INTO wp_actionscheduler_logs
[php7:error] [pid 7991] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in /…
[error] 7573#7573: *2157 peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream, client: xxx.xxx.xxx.xxx, server: xxxxxx.com, request: " /1.1", upstream:
[php7:warn] [pid 1868] [client xxx.xxx.xxx.xxx] PHP Warning: mysqli_query(): (xxxx/xxxx): Server shutdown in progress in / on line xxxxx
[php7:notice] [pid 22614] [client xxx.xxx.xxx.xxx] Error The used table type doesn't support FULLTEXT indexes de la base de datos de WordPress para la consulta insert INTO…

Errores comunes al importar una BBDD desde Mysql o desde terminal

ERROR 1214 (HY000)

Este error se produce al importar una base de datos se debe a una versión desactualizada de MySQL / MariaDB.

ERROR 1214 (HY000) at line xxxxxxxx: The used table type doesn’t support FULLTEXT indexes

Antes de MySQL 5.6, la búsqueda de texto completo solo es compatible con MyISAM Engine.

Deberá ejecutar MySQL 5.6 o superior, o MariaDB 10.0.5 o superior.
La solución es actualizar el sistema de BBDD.

Si estás importando una base de datos de WordPress es posible que sea alguna tabla obsoleta, que lo puedas ignorar y no te haga falta actualizar el sistema de bases de datos.

ERROR 1146 (42S02)

ERROR 1146 (42S02) at line 999999: Table ‘bbdd.tabla’ doesn’t exist

Este error se produce al importar la base de datos por que no encuentra las tablas correctas.
La solución que encontrarás en otros artículos es que no te queda otra opción que reconstruir la base de datos con varios Scripts, pero si aún tienes acceso a PhpMyAdmin existe una solución mucho mas sencilla.

  1. Accede allá Base de datos original desde PhpMyAdmin
  2. Ves a la pestaña Importar y haz click en “Personalizado”
  3. En las opciones de configuración ves al desplegable “Sistema de base de datos o versión antigua de servidor MySQL con la que maximizar la compatibilidad de la salida:” y selecciona MYSQL40
  4. Exporta de nuevo la base de datos e importa desde el hosting nuevo.

ERROR 1273 (HY000)

ERROR 1273 (HY000) at line 999998: Unknown collation: ‘utf8mb4_unicode_ci’

Este error se debe a que el servidor local y el servidor en vivo están ejecutando diferentes versiones de MySQL.
El cotejamiento de las bases de datos son diferentes.

Las soluciones al error ERROR 1273 son 2:

Primera solución:
1- Abra el archivo sql en su editor de texto
2- Busque y reemplace la cadena de texto donde aparece el cotejamiento de la base de datos original con el cotejamiento de la base de datos donde la vamos a subir. Por ejemplo reemplazar todo utf8mb4_unicode_ci por utf8mb4_unicode_ci
3- Guardar y subir a una base de datos mySql nueva

Segunda solución (mi favorita)
Si la base de datos es nueva crea directamente la base de datos con el mismo cotejamiento de la base de datos de origen.
Este es un punto muy tonto pero muy importante.

En mi caso era el origen de todos los problemas y es que al crear la base de datos en VestaCP ponía cotejamiento UTF8 y luego intentaba importar una base de datos en UTF8MB4 y voila… un sinfín de errores.

Al no prestar atención a la Codificación de caracteres me llegaba a hacer parte de la importación pero al acceder a la BBDD entraba en bucle y bloqueaba el servidor de bases de datos.

Teniendo en cuenta todos estos puntos tu migración se debería realizar sin errores.

Comparte este artículo y sé parte de la corriente de creatividad, innovación y diseño en las redes sociales.

Si te ha inspirado lo que has leído, compártelo con tu mundo.

LinkedIn
Facebook
WhatsApp
Skype
Telegram
Email
Twitter