MySQL - Reconstruir BD desde los archivos físicos

 
Vista:
Imágen de perfil de Jhon
Val: 10
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Reconstruir BD desde los archivos físicos

Publicado por Jhon (12 intervenciones) el 02/08/2019 14:49:23
Cordial saludo gente.

Tengo un problema gordo:

Necesito salvar una base de datos y no tengo un script sql de ella. Sólo tengo la copia del /var/lib/mysql del servidor anterior con los frm, ibd. etc.
He leído mucho sobre que sí se puede salvar así pero yo no he podido.
Alguien podría echarme una mano con eso? Estoy en aprietos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jhon
Val: 10
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Reconstruir BD desde los archivos físicos

Publicado por Jhon (12 intervenciones) el 03/08/2019 16:42:14
Solucionado. Dejo la respuesta por si a alguien le sirve:

Hay que instalar mysql utilities si no lo tienes ya y ejecutas este comando por cada tabla que quieres salvar (la estructura de las tablas son los archivos .frm).
Primero modifica mysqld.conf y le añades una línea para forzar innodb a 1.
Después ejecutas:
1
mysqlfrm --user=miUsuario --server=root:myPassword@111.111.1.1 --port=3307 miRuta/miTabla.frm > miOtraRuta/miTabla.sql

Eso crea un sql con el script para crear nuevamente tu tabla. Lo ejecutas en tu base de datos y a tienes tabla nuevamente. Al reconstruirla se creo un archivo .frm nuevo y un .ibd.
Ejecutamos:
1
ALTER TABLE mitabla DISCARD TABLESPACE;

Eso elimina el nuevo .ibd y ahora copiamos ahí el que tenemos de nuestra BD anterior.

Ahora vinculamos nuevamente el frm con ibd:
1
ALTER TABLE mitabla IMPORT TABLESPACE;

reiniciamos el servicio mysql y listo. Ya tenemos data otra vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar