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
- Coloque el
mytable.frm
en la carpeta/var/lib/mysql/mydata folder
en el Servidor-T - Coloque el
mytable.ibd
en la carpeta/var/lib/mysql/mydata folder
en el Servidor-T - 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!