sql >> Base de Datos >  >> RDS >> Mysql

Importar archivos .frm y .opt a MySQL

En cuanto a la importación de datos MySQL, se deben considerar tres (3) cosas.

Mi ISAM

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

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

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

InnoDB (innodb_file_per_table deshabilitado [predeterminado])

Todos los datos de InnoDB y las páginas de índice se encuentran en /var/lib/mysql/ibdata1 . Este archivo debe moverse desde su máquina de origen (Servidor-S) a la máquina de destino (Servidor-T) y colocarse en la misma ruta absoluta. De hecho, aquí está la sorpresa:Server-S y Server-T deben ser lo mismo. En otras palabras, no puede importar y exportar InnoDB .ibd archivos a otras máquinas. Solo se pueden importar y exportar en la misma máquina el .ibd fue creado el.

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 todas las variables de InnoDB configuradas en /etc/my.cnf desde Server-S deben configurarse en /etc/my.cnf en Server-T.

InnoDB (innodb_file_per_table activado)

Por 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 .ibd El archivo contiene datos y páginas de índice para la tabla. Para importar la tabla individual debes

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

Asegúrese de tener el /var/lib/mysql/ibdata1 en el mismo lugar de donde fue importado.

Moraleja de la historia

No utilice técnicas de IMPORT TABLESPACE en diferentes servidores. Simplemente haga un mysqldump de todo e importe el archivo mysqldump. ¡Los volcados lógicos son siempre la forma más segura de hacerlo!