Solución:
Los archivos .frm no son archivos de datos, solo almacenan la “información del diccionario de datos” (consulte el manual de MySQL). InnoDB almacena sus datos en archivos ib_logfile *. Eso es lo que necesita para realizar una copia de seguridad / restauración. Para obtener más detalles, consulte aquí.
Restaurando innodb: (asumiendo que su carpeta de datos es C: ProgramData MySQL MySQL Server 5.5 data)
- Copie las carpetas de las bases de datos (nombradas después del nombre de la base de datos) que desea restaurar en C: ProgramData MySQL MySQL Server 5.5 data
-
Copie los 3 archivos ibdata a la carpeta de datos ej. (C: ProgramData MySQL MySQL Server 5.5 data)
_ib_logfile0 _ib_logfile1 _ibdata1
-
Obtenga el tamaño del _ib_logfile0 en MB (debería ser el mismo que _ib_logfile1) haciendo clic derecho en Archivo -> Propiedades
-
Edite el archivo de configuración de mysql (mysql bin my.ini) para que innodb_log_file_size = 343M tenga exactamente el tamaño de los archivos ibdata
-
Correr
mysqld –defaults-file = mysql bin my.ini –standalone –console –innodb_force_recovery = 6
-
Ahora sus datos deberían estar de vuelta en su base de datos. Exportarlos usando phpmysql o cualquier otra herramienta
Oh mi … estás en problemas. Cierre la base de datos. Haga una copia de seguridad del archivo innodb. Ore para que no haya hecho NADA después de eliminar la base de datos.
Los chicos de Percona (incluidos los autores de MySQL Performance Blog) deberían poder ayudarlo: Soporte de emergencia de Percona.
Si se aventura por su cuenta, llévese esto: Kit de herramientas de recuperación de datos para Innodb.
¿La logística de la misma? Tienes que leer cada página (el término de computadora página … bloque de 16k en el caso de Innodb) y reconstruir tus datos de esa manera. Es un trabajo de muy bajo nivel (estamos hablando de abrir su editor hexadecimal y comenzar a contar bytes si el kit de herramientas no lo hace por usted), y si no es un programador con mucha experiencia, le va a salir mal .