Recuperación de bases de datos MySQL


La recuperación de una base de datos MySQL puede abordarse de distintas formas según el tipo de problema que se haya producido. No es lo mismo un fallo al iniciar el servicio que la corrupción de tablas o la pérdida de datos. Por este motivo, se suelen distinguir varios niveles de recuperación, desde situaciones simples hasta escenarios más complejos.

Nivel 1: Fallo de inicio (InnoDB)

Cuando MySQL no arranca tras un apagón inesperado o un fallo del sistema, el problema suele estar relacionado con el motor InnoDB. Este motor incorpora mecanismos automáticos de recuperación, por lo que en muchos casos el sistema se repara al reiniciarse.

Acción recomendada: Reiniciar el servicio MySQL.

Si el problema persiste, es necesario revisar los logs de error, ya que proporcionan información clave para identificar la causa del fallo.

Nivel 2: Reparación de tablas dañadas

En este nivel, MySQL funciona correctamente, pero algunas tablas presentan errores, no se pueden abrir o están corruptas. Existen varias formas de intentar su reparación.

Reparación desde phpMyAdmin

  • Acceder a la base de datos.
  • Seleccionar las tablas afectadas.
  • Elegir la opción “Reparar tabla”.

Reparación mediante SQL

REPAIR TABLE nombre_tabla;

Reparación con mysqlcheck

mysqlcheck -r -u root -p --all-databases

Esta herramienta permite reparar todas las bases de datos desde la línea de comandos.

Nivel 3: Recuperación física de datos

En situaciones más graves, cuando MySQL no carga correctamente o los datos están seriamente dañados, es posible intentar una recuperación directa desde los archivos internos del sistema.

Estos archivos incluyen, entre otros, los formatos .ibd, .frm y el archivo ibdata1.

Procedimiento básico (ejemplo con XAMPP)

  1. Renombrar la carpeta actual de datos:
    mysql/data → mysql/data_old
  2. Crear una nueva carpeta vacía:
    mysql/data
  3. Copiar los archivos necesarios desde la carpeta anterior:
    • ibdata1
    • carpetas de las bases de datos

    No copiar las carpetas:

    • mysql
    • performance_schema
    • phpmyadmin
  4. Reiniciar el servicio MySQL.

Este procedimiento puede permitir recuperar parcialmente la información en situaciones críticas.

Recuperación mediante copia de seguridad

Si se dispone de un archivo de respaldo en formato .sql, este es el método más fiable para recuperar la base de datos.

Desde MySQL Workbench

  • Ir a Server
  • Seleccionar Data Import
  • Cargar el archivo .sql

Desde línea de comandos

mysql -u usuario -p nombre_base_datos < respaldo.sql

Herramientas especializadas

En casos donde los métodos anteriores no funcionan, existen herramientas profesionales que permiten recuperar datos desde archivos dañados, incluyendo tablas, índices y vistas. Algunas de estas herramientas son SysInfoTools, Stellar Repair for MySQL o Recovery Toolbox.