Recuperar base de datos mysql desde la carpeta data

Para echar el cuento de lo que me sucedió y cómo lo solucioné y recuperé la base de datos mysql... comienzo a continuación:

Le cayó un virus a la computadora que inutilizó completamente el sistema, al intentar acceder a la base de datos con algún front (sqlyog o mysqlfront), mostraba error... algo así como que 'localhost' no puede acceder a la base de datos... Adicionalmente el programa que utilizaba la bd, tampoco cargaba, ya que afectó algunos archivos necesarios para cargar...

Después de gastar más de 3 horas tratando de salvar el sistema, me decidí a hacer una nueva instalación de Windows 7 Professional... en este caso, no hice formateo del equipo ni nada por el estilo...  La instalación de Windows creó una carpeta Windows.old y allí se encuentran respaldados todos los archivos necesarios para la restauración...

Para mayor seguridad, hay que tener claro en dónde están los datos o la carpeta data, almacenada... específicamente la que usa el mysql server que estaba trabajando... para ello, hay que buscar el archivo my.ini que por lo general se encuentra en "c:\Archivos de Programa\MYSQL\MYSQL Server 5.5\"... Se debe abrir el archivo de texto y buscar la línea que dice "datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"... Fíjense que no siempre coincide con la instalación del Mysql... Ojo... algo muy importante... esta carpeta se encuentra oculta, por tanto deben hacer que el explorador pueda ver los archivos y directorios ocultos...

Continuando... y aclarando, que con la carpeta Windows.old, el proceso de instalación también respalda la carpeta "c:\ProgramData"... allí... cosa que nos es muy util...

A veces es preferible por precaución hacer respaldos de la carpeta de Data en otro lugar, en caso que tengamos que formatear el equipo y borrar todo el discoduro...

Un dato muy importante es conocer la versión de mysql que estaba instalada, ya que al hacer la recuperación de datos con una versión errónea, el servicio de de datos no levanta... es por ello que se debe contar con el instalador de la versión exacta correspondiente a los datos que se desean recuperar.

En mi caso, la desconocía, ya que siempre me bajo la última versión de mysql y la instalo, y por lo general no guardaba copia del instalador... 

Para averiguar la versión del mysql hay que buscarla en algún archivo de texto de la instalación del mysql... Estuve buscándola en "c:\Archivos de Programa\MySQL\MySQL server 5.5" y la verdad no tuve éxito... Luego intenté obtenerla de algún respaldo anterior...  y allí si... por ejemplo el SQLYOG al hacer el dump para respaldar la base de datos, en las primeras líneas incluye la versión del mysql, cosa que ayuda mucho.  En caso de no tener respaldos... ya cosa se complica un poco más... jejejejee... sin embargo... conseguí la versión de mysql en un lugar recóndito... hay que revisar la carpeta de data... y allí se encuentran varios archivos y carpetas... los archivos que hay que revisar son los de extensión ".err"... EUREKA!!!!... es un archivo de texto con un log de errores del servidor mysql... 

Ya con la nueva instalación de windows o en otro equipo, instalar exactamente la misma versión del servidor mysql... 

Detener el servicio de mysql... en Panel de Control, ubicar servicios del sistema... y buscar MYSQL para detenerlo.

-- Aquí hay varias versiones de la solución, lo que me funcionó fue:

De la carpeta data que tenemos respaldada... o que queremos recuperar...
Copiar "ibdata1"...
También las otras carpetas dentro de data... OJO!!! a excepción de la carpeta "mysql"

Fijarse que también hay algunos archivos adicionales que tienen extensión .log los cuales no deben ser copiados...

Ubicar la carpeta de data de la nueva instalación... 
y pegarla allí... reemplazando todos los archivos... 

Al terminar la copia... levantar de nuevo el servicio mysql...

Así... recuperé todos los datos de la base de datos... sin ningún inconveniente...

Quizá me extendí un poco... tratando de abarcar todo lo que se necesita saber.

Comentarios

JAVH ha dicho que…
Excelente, muchas gracias, me encontraba desarrollando un sistema de punto de venta y el sistema se me corrompió, aunque no tenía datos no quería perder la estructura de varios meses de avance, de mirar varios tutoriales este fue el único que me funcionó, tuve que downgradear y copiar el archivo ibdata1, exportar las bases a texto SQL para pasar los datos a la nueva versión.

Saludos!!
Unknown ha dicho que…
Hola, buenas tardes, excelente aporte, en mi caso yo solo desinstale por novato el xampp y ya use un programa para recuperar los archivos, lo cual parece ser que si funciono o medio funciono, tengo una consulta que hacerle, al entrar en la carpeta data si encuentro el archivo ibdata1 y muchos mas y también otras carpetas, pero mi cuestion es lo siguiente, yo tenia dos bases de datos y tengo una carpeta llamada ejido que supongo hace referencia a una de las base de datos que tenia así llamada, pero no me sale ninguna carpeta llamada caseta y esa era otra de las bases de datos que tenia, yo creo que se crea una carpeta por cada base de datos no? entonces si no esta esa carpeta llamada caseta no funcionara? es que ya hice lo que menciona pero no me funciona, será ese el motivo? Ojalá pueda ayudarme un poco. Saludos y buen día!
JAVH ha dicho que…
Hola, no soy el dueño del blog pero te contesto, en efecto, te genera una carpeta por cada base de datos creada, el problema está en que el programa de recuperación no te recuperó al 100%, por lo que la única opción es que intentes con otro software de recuperación de archivos, evita escribir en lo más mínimo en ese disco duro para evitar sobreescribir en la base de datos borrada.

Saludos.
Unknown ha dicho que…
Me funcionó excelente! gracias por el aporte!
Lupe N ha dicho que…
Wow, me sirvió a la perfección! Muchas gracias por el aporte
Ricardo R. ha dicho que…
Alguien sabe como hacerlo desde un hosting externo?
Mike ha dicho que…
Graciass Gaaarda :V Me fue de mucha ayuda. (Y)
Unknown ha dicho que…
Muchas gracias un buen aporte me funciono
Unknown ha dicho que…
Gracias!!!!! Me ayudo!!!!! Un 20 a tu aporte

Entradas populares de este blog

Imagen de Fondo en Reporte iReport de JasperReport

Sistema de Gestión de Laboratorio Clínico TICLAB