restaurar recuperar mysqlfrm missing ibd how from for files desde datos data carpeta archivos archivo mysql database

recuperar - Importar archivos.frm y.opt a MySQL



restaurar base de datos mysql desde archivos frm ibd (4)

Estoy usando MySQL 5.5.1.1 descargado e instalado desde: http://dev.mysql.com/downloads/

Quiero importar archivos de base de datos .frm y .opt de mi máquina local a mi base de datos mysql.

Creé una nueva conexión de base de datos para ayudarme a importar los archivos de mi máquina. Pero no puedo importar archivos .frm porque recibo un mensaje de error: el formato no es compatible.

¿Alguien puede ayudarme, por favor, sobre cómo puedo importar archivos al cliente MySQL?

Gracias j


Al importar cualquier dato de MySQL, hay que considerar tres (3) cosas.

MyISAM

Importar una tabla MyISAM es tan simple como mover tres archivos con las extensiones .frm , .MYD y .MYI para la tabla dada a una carpeta MySQL. Por ejemplo, si el nombre de la tabla es mydata, entonces los tres (3) archivos

  • mydata.frm
  • mydata.MYD
  • mydata.MYI

Lo siguiente podría ser la pesadilla de las pesadillas. La importación de InnoDB depende completamente de muchos factores que se clasifican en una de dos categorías:

InnoDB ( innodb_file_per_table deshabilitado [predeterminado])

Todas las páginas de datos e índices de InnoDB se encuentran en /var/lib/mysql/ibdata1 . Este archivo debe moverse de su máquina de origen (Server-S) a la máquina de destino (Server-T) y colocarse en la misma ruta absoluta. De hecho, aquí está la sorpresa: Server-S y Server-T deben ser iguales. En otras palabras, no puede importar y exportar archivos .ibd InnoDB a otras máquinas. Solo se pueden importar y exportar en la misma máquina en la que se creó .ibd .

También tendría que mover / var / ib / mysql / ib_logfile0 y / var / ib / mysql / ib_logfile1 desde Server-S y colocarlos en la misma ruta absoluta en Server-T.

También debe asegurarse de que cada variable InnoDB establecida en /etc/my.cnf desde el Servidor-S debe configurarse en /etc/my.cnf en el Servidor-T.

InnoDB ( innodb_file_per_table habilitado)

Para cada tabla InnoDB, habrá dos archivos. Por ejemplo, si la tabla InnoDB en la base de datos mydata se llama mytable, tendrá /var/lib/mysql/mydata/mytable.frm y /var/lib/mysql/mydata/mytable.ibd. El archivo .ibd contiene datos y páginas de índice para la tabla. Para importar la tabla individual debes

  1. Coloque el mytable.frm en la mytable.frm /var/lib/mysql/mydata folder en Server-T
  2. Coloque el mytable.ibd en la mytable.ibd /var/lib/mysql/mydata folder en Server-T
  3. Ejecute ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Asegúrese de tener el /var/lib/mysql/ibdata1 en el mismo lugar desde el que se importó.

Moraleja de la historia

No utilice las técnicas de IMPORT TABLESPACE en diferentes servidores. Solo haga un mysqldump de todo e importe el mysqldump. Los vertederos lógicos son siempre la forma más segura de ir!


Creo que el gran problema que puede estar experimentando proviene del hecho de que ni siquiera puede ver estos archivos .frm en la interfaz de phpmyadmin (porque realmente son conjuntos incompletos). Le sugiero que elimine estos archivos de la ubicación actual y use phpmyadmin para volver a crear estas tablas como SQL en la pestaña "consulta" [eliminar IFF si tiene un script de base de datos de todo. Si no es así, todavía puede obtener esto del antiguo vertedero. Si no es gaian, NO lo borres). Gracias: chagbert.


Hice una importación de mysql usando los archivos en xampp. Tengo muchas bases de datos, por lo que no quería pasar por la ruta mysqldump. El proceso fue:

  1. Instale el nuevo xampp, pero no habilite los servicios
  2. Actualice my.ini para incluir cualquier configuración personalizada que haya tenido en la instalación anterior.
  3. Confirme que mysql se inicia correctamente
  4. Copie todas las carpetas de la base de datos (dentro de la carpeta de datos) de la instalación anterior con la excepción de mysql , phpmyadmin y webauth .
  5. Confirme que mysql se inicia correctamente
  6. Copie sobre ib_logfile0 , ib_logfile1 y ibdata1 . Cambie el nombre de los archivos primero, no sobrescriba en caso de que algo salga mal.
  7. Confirme que mysql se inicia correctamente
  8. Copie los siguientes archivos de la carpeta data / mysql : db.frm , db.MYD , db.MYI , user.frm , user.MYD , user.MYI . No sobrescriba los nuevos en caso de que no funcione.
  9. Confirme que mysql se inicia correctamente

Al final del proceso tuve mysql funcionando perfectamente con todas mis bases de datos y usuarios intactos.


Simplemente copie la carpeta de ''datos'' deseada en la carpeta de datos de mysql, después de cambiar el nombre de la carpeta de ''datos'' actual, después de detener el servicio mysql. Y exporte al archivo sql con phpmyadmin, restaure la carpeta de datos actual e importe los datos deseados sql.