Recuperar datos a partir de ficheros ibd y frm de la base de datos de Engine Innodb

A veces puede que tengamos la necesidad de recuperar los datos de la base de datos a partir de los ficheros frm e ibd de Mysql porque las tablas están rotas o porque se nos ha olvidado la contraseña o por cualquier otro motivo.

Tener acceso a la carpeta de la ruta donde se guardan los datos de Mysql

En Linux, normalmente la ruta es /var/lib/mysql/[tu_bbdd]. Allí estarán los ficheros donde se guardan los datos de la base de datos. Si la base de datos es del tipo Innodb, habrá 2 ficheros para cada tabla: frm e idb.

  • frm: Es la estructura de la tabla. Contiene las columnas y sus características.
  • idb: Contiene datos de la tabla.

Crear una nueva bbdd

        
            CREATE DATABASE [nombre de la base de datos]
        
    

Crear tablas con las mismas características que las originales

Para ello, podemos usar la herramienta dbsake. Lo que pretende este paso es crear una tabla igual que la original. En este tutorial usaremos el dbsake.

        
             curl -s http://get.dbsake.net > dbsake
             chmod u+x dbsake
        
    

Sacar el DDL de una tabla frm

        
            ./dbsake frmdump [nombre del fichero frm]
        
    

Crear una nueva bbdd

Crear la tabla con el DDL sacado del comando dbsake

Parar mysql

        
            sudo service mysql stop
        
    

Recuperar datos del fichero ibd

Copiar el fichero ibd de la tabla vieja a la ruta/var/lib/mysql/[tu_bbdd] y seguidamente ejecutamos el siguiente comando.

        
            alter table [nombre de la tabla] import tablespace
        
    

Reiniciar el servicio mysql

        
            sudo service mysql restart
        
    

Pensamientos finales

Es importante asegurarnos de la seguridad del dispositivo ordenador, móvil etcétera que estamos usando. Asegurarnos de la seguridad de las aplicaciones que instalamos en nuestros dispositivos. Asegurarnos de quién está utilizando nuestro dispositivo móvil. En este tutorial, podemos ver que aunque la base de datos esté con contraseña, si tienen los ficheros frm e ibd de las bases de datos, pueden saber la información que hay en esas bases de datos.

Referencias