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
Saludos!!
Saludos.