icono_twiter icono Facebook
Carlos García Pérez

Técnico especialista en informática de empresa (CEU).

Ingeniero Técnico en Informática de Sistemas (UPM)

Creador de MobileTest, Haaala!, Girillo, toi18n.

Charla sobre desarrollo de aplicaciones en Android.

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2008-08-20

Tutorial visitado 21.071 veces Descargar en PDF
Recuperación de una base de datos MySQL de un HDD formateado

Recuperación de una base de datos MySQL de un disco formateado

En este tutorial vamos a ver que podemos hacer para intentar recuperar una base de datos MySQL de la cuál no se tiene copia desde un disco duro que ha sido formateado o está corrupto.

Introducción

Como todos sabemos, una de los recursos más importantes que tiene una empresa son los datos con los que trabaja: clientes, pedidos, etc.

Normalmente una gran parte de esta información es almacenada en base de datos y es accedida por los trabajadores de la empresa a través de aplicaciones.

Debido a la importancia de esta información, es necesario tener políticas de administración, así como de copias de seguridad para poder restaurar la información en caso de ser necesario.

Por desgracia, normalmente por desconocimiento o exceso de confianza, muchas pequeñas y medianas empresas carecen de estas políticas.

¿Qué información tenemos que recuperar del disco duro pare recuperar la base de datos MySQL?

Para recuperar las bases de datos necesitamos:

  1. Saber dónde y cómo guarda el servidor MySQL la información de nuestras bases de datos.
  2. Un programa de recuperación de datos (aunque el HDD haya sido formateado es posible recuperar la información), por ejemplo: Easy Recovery.

¿Dónde y cómo guarda el servidor MySQL la información de nuestras bases de datos?

Por defecto, el servidor MySQL crea un directorio para cada base de datos dentro del directorio %MYSQL_PATH%/data. Por ejemplo, los datos de una BD de nombre autentia_tntconcept se almacenarían en %MYSQL_PATH%/data/autentia_tntconcept

Nota:%MYSQL_PATH% es la ruta donde está instalado el servidor MySQL.

MySQL trata principalmente con los siguientes tipos de archivos:

  1. Archivos con extensión .frm: Guardan la definición de una tabla u objeto de la base de datos.
  2. Archivos con extensión .myd: Guardan los datos de una tabla de tipo MyISAM.
  3. Archivos con extensión .myi: Guardan los datos de un índice de una tabla de tipo MyISAM.

Como sabemos, la mayoría de las tablas suelen ser de tipo InnoDB. Por defecto, TODOS los datos de TODAS las tablas de tipo InnoDB de TODAS las bd están en los archivos %MYSQL_PATH%/data/ibdata{n} siendo n=1, 2, 3

¿Cómo reconstruyo la base de datos?

Una vez recuperados los archivos expuestos en el punto anterior, simplemente debemos copiarlos al ordenador donde deseemos restaurarlos manteniendo la misma estructura. Para ello debemos parar el servidor MySQL antes de la copia e iniciarlo después.

Si al iniciar el servidor se produce algún error, borre los archivos %MYSQL_PATH%/data/ib_logfile{n} e inténtelo de nuevo.

Nota importante: Si el archivo %MYSQL_PATH%/data/ibdata{n} tiene datos de muchas BD, sólo serán visibles las BD en donde también tengamos la definición, es decir, el directorio de la base de dados con los archivos .frm.

Bueno, eso es todo, un saludo.
Carlos García. Creador de MobileTest.

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2014-10-17-18:57:22

Autor: aldamupi

Hola.
Recienteme restauré mi equipo a un estado anterior, toda la información despues de la fecha en MYSQL se me perdió. Cómo la restauro?
Gracias

Fecha publicación: 2009-04-24-12:09:37

Autor:

[Omar Coñes] execelente, sin duda la rejor redaccion

Fecha publicación: 2009-04-06-09:02:00

Autor:

[Hugulugu] Bien señor! Si todo el mundo posteara en foros asi de claro, este mundo sería un mejor lugar para vivir! Arriba los que postean solo cuando saben de lo ke estan hablando y no nmas por adivinar! Gracias