Restaurar la base de datos mysql de archivos .frm

He descargado todas mis tablas cada semana para obtener la copia de seguridad. Pero más tarde entiendo que solo está almacenando el archivo .frm de la tabla. No muestra los archivos .MYD y .MYI de una tabla. Así que solo tengo mi archivo .frm de la base de datos y también mydatabase es innodb. Entonces, ¿puedo obtener mi base de datos con datos en la base de datos?

Sí, esto es posible. No es suficiente que solo copie los archivos .frm a la carpeta databse, pero también debe copiar el archivo ib_logfiles y ibdata en su carpeta de datos. Acabo de copiar los archivos .frm y copiar esos archivos y simplemente reiniciar el servidor y mi base de datos se restaura.

Solo podría ser útil para alguien:

Solo pude recuperar archivos frm después de un desastre, al menos pude obtener la estructura de tabla de archivos FRM haciendo lo siguiente:

1- crear algunas tablas ficticias con al menos una columna y MISMO NOMBRE con archivos frm en una nueva base de datos mysql.

Servicio mysql de 2 paradas

3- Copie y pegue los archivos frm viejos a los archivos frm de la tabla recién creada, debería preguntarle si desea sobrescribir o no para cada uno. reemplaza todo.

4-start servicio mysql, y tienes la estructura de tu tabla …

Saludos. anybudy

Respondí esta pregunta aquí también: https://dba.stackexchange.com/a/42932/24122

Recientemente experimenté este mismo problema. Estoy en una Mac así que utilicé MAMP para restaurar la base de datos a un punto donde pudiera exportarla en un volcado de MySQL.

Puedes leer la publicación completa del blog aquí: http://www.quora.com/Jordan-Ryan/Web-Dev/How-to-Recover-innoDB-MySQL-files-using-MAMP-on-a-Mac

Debes tener:

-ibdata1

-ib_logfile0

-ib_logfile1

-.FRM archivos de su carpeta mysql_database

-Instalación de MAMP / MAMP Pro que estás dispuesto a destruir (si es necesario)

  1. SSH en su servidor web (desarrollador, producción, no hay diferencia) y busque su carpeta mysql (la mía estaba en / var / lib / mysql para una instalación Plesk en Linux)
  2. Comprime la carpeta mysql
  3. Descargue un archivo de la carpeta mysql que debe contener todas las bases de datos mySQL, ya sea MyISAM o innoDB (puede escanear este archivo o moverlo a un directorio descargable, si es necesario)
  4. Instalar MAMP (Mac, Apache, MySQL, PHP)
  5. Navegue a / Aplicaciones / MAMP / db / mysql /
  6. Copia de seguridad / Aplicaciones / MAMP / db / mysql a un archivo comprimido (por si acaso)
  7. Copie en todas las carpetas y archivos incluidos en el archivo de la carpeta mysql del servidor de producción (mt entorno Plesk en mi caso) EXCEPTO NO SOBRESCRIBE:

    – / Aplicaciones / MAMP / db / mysql / mysql /

    – / Aplicaciones / MAMP / db / mysql / mysql_upgrade_info

    – / Aplicaciones / MAMP / db / mysql / performance_schema

  8. Y listo, ahora debería poder acceder a las bases de datos desde phpMyAdmin, ¡qué alivio!

Pero no hemos terminado, ahora necesita realizar un mysqldump para restaurar estos archivos a su entorno de producción, y la interfaz de phpmyadmin agota el tiempo de las bases de datos grandes. Sigue los pasos aquí:

http://nickhardeman.com/308/export-import-large-database-using-mamp-with-terminal/

Copiado a continuación para referencia. Tenga en cuenta que en una instalación de MAMP predeterminada, la contraseña es “raíz”.

Cómo ejecutar mysqldump para MAMP usando Terminal

BASE DE DATOS DE EXPORTACIÓN DE MAMP [1]

Paso uno: abra una nueva ventana de terminal

Paso dos: navegue a la instalación de MAMP ingresando la siguiente línea en la terminal cd / applications / MAMP / library / bin Presione la tecla enter

Paso tres: escriba el comando de volcado ./mysqldump -u [USERNAME] -p [DATA_BASENAME]> [PATH_TO_FILE] Pulse la tecla enter

Ejemplo:

 ./mysqldump -u root -p wp_database > /Applications/MAMP/htdocs/symposium10_wp/wp_db_onezero.sql 

Sugerencia rápida: para navegar rápidamente a una carpeta, puede arrastrarla a la ventana de la terminal y escribir la ubicación de la carpeta. Fue un gran día cuando alguien me mostró esto.

Paso cuatro: esta línea de texto debe aparecer después de presionar Enter Ingresar contraseña: adivina qué, escribe tu contraseña, ten en cuenta que las letras no aparecerán, pero están allí. Presiona la tecla enter

Paso cinco: verifique la ubicación donde almacenó su archivo, si está allí, SUCCESS Ahora puede importar la base de datos, que se describirá a continuación.

Ahora que tiene una exportación de su base de datos mysql, puede importarla en el entorno de producción.

Hice uso de mysqlfrm que es una gran herramienta que genera el código sql de creación de tablas a partir de archivos .frm. Estaba obteniendo este error de tabla desagradable, aunque las tablas estaban en la lista. Por lo tanto, utilicé esta herramienta para regenerar las tablas. En ubuntu necesitas instalar esto como:

 sudo apt install mysql-utilities 

entonces,

 mysqlfrm --diagnostic mysql/db_name/ > db_name.sql 

Crea una nueva base de datos y luego puedes usar

 mysql -u username -p < db_name.sql 

Sin embargo, esto le dará las tablas, pero no los datos. En mi caso esto fue suficiente.

Copié las carpetas de bases de datos a la carpeta de datos en MySQL, es decir, si tienes una base de datos llamada alto, busca la carpeta alto en tu carpeta MySQL -> Datos en tu copia de seguridad y copia toda la carpeta alto y pásala a MySQL recién instalada – > carpeta de datos, reinicie MySQL y esto funciona perfecto.

Antes de comenzar, debe detener los servicios de WAMP o, al menos, reiniciar los servicios cuando se le solicite que los inicie.

En la instancia del servidor anterior, navegue a la carpeta de datos MySQL de manera predeterminada, esto debería ser similar a C:\wamp\bin\mysql\mysql5.1.53\data\ donde mysql5.1.53 será el número de versión de la base de datos MySQL previamente instalada.

Dentro de esta carpeta, deberías ver algunos archivos y carpetas. Las carpetas son las bases de datos de MySQL reales, y contienen un grupo de archivos .frm que necesitaremos. Debe reconocer los nombres de las carpetas como nombres de las bases de datos. Esta carpeta y todos sus contenidos se pueden copiar directamente a su carpeta de datos MySQL, puede descuidar las bases de datos predeterminadas mysql, performance_schema, test.

Si inició el servidor ahora, verá que las bases de datos se recogen, sin embargo, las bases de datos no contendrán ninguna de las tablas que se copiaron. Para que se recoja el contenido de la base de datos, en la carpeta de datos debe ver un archivo ibdata1 , este es el archivo de datos para tablas, cópielo directamente en la carpeta de datos, ya debe tener un archivo en su nueva carpeta carpeta de datos llamada “ibdata1” por lo que es posible que desee cambiar el nombre a ibdata1.bak antes de copiar en el ibdata1 de la carpeta de datos de MySQL anterior.

Una vez hecho esto, reinicie todos los servicios de WAMP. Puede usar PhpMyAdmin para verificar si sus bases de datos se han restaurado correctamente.

Copie todos los archivos y reemplace a / var / lib / mysql, luego de eso debe cambiar el propietario de los archivos a mysql Esto es muy importante si el reinicio de mariadb.service ha sido faild

chown -R mysql: mysql / var / lib / mysql / *

y

chmod -R 700 / var / lib / mysql / *

crear una nueva base de datos con el mismo nombre copiar los archivos .frm .ibd en xampp / mysql / data / [databasename] /

también necesitarás un archivo ibdata que se encuentra dentro

xampp / mysql / data / copie el archivo ibdata1 anterior pegue el archivo y sustitúyalo por el archivo ibdata existente

[ precaución: puede perder el contenido de la base de datos que se creó recientemente en el nuevo archivo ibdata ]