No que diz respeito à importação de quaisquer dados do MySQL, três (3) coisas precisam ser consideradas.
MeuISAM
Importar uma tabela MyISAM é tão simples quanto mover três arquivos com as extensões
.frm
, .MYD
e .MYI
arquivos para a tabela fornecida em uma pasta MySQL. Por exemplo, se o nome da tabela for mydata, os três (3) arquivos mydata.frm
mydata.MYD
mydata.MYI
O seguinte pode ser o pesadelo dos pesadelos. A importação do InnoDB depende inteiramente de muitos fatores que se enquadram em uma das duas categorias:
InnoDB (innodb_file_per_table desativado [padrão])
Todos os dados e páginas de índice do InnoDB estão localizados em
/var/lib/mysql/ibdata1
. Este arquivo deve ser movido de sua máquina de origem (Server-S) para a máquina de destino (Server-T) e colocado no mesmo caminho absoluto. Na verdade, aqui está o choque:Servidor-S e Servidor-T devem ser os mesmos. Em outras palavras, você não pode importar e exportar InnoDB .ibd
arquivos para outras máquinas. Eles só podem ser importados e exportados na mesma máquina que o .ibd
foi criado em. Você também teria que mover /var/ib/mysql/ib_logfile0 e /var/ib/mysql/ib_logfile1 do Server-S e colocá-los no mesmo caminho absoluto no Server-T.
Você também deve certificar-se de que cada variável InnoDB configurada em /etc/my.cnf do Server-S deve ser configurada em /etc/my.cnf no Server-T.
InnoDB (innodb_file_per_table ativado)
Para cada tabela InnoDB, haverá dois arquivos. Por exemplo, se a tabela InnoDB no banco de dados mydata for chamada mytable, você terá
/var/lib/mysql/mydata/mytable.frm
e /var/lib/mysql/mydata/mytable.ibd. O .ibd
arquivo contém dados e páginas de índice para a tabela. Para importar a tabela individual, você deve - Coloque o
mytable.frm
na pasta/var/lib/mysql/mydata folder
no Servidor-T - Coloque o
mytable.ibd
na pasta/var/lib/mysql/mydata folder
no Servidor-T - Execute
ALTER TABLE mydata.mytable IMPORT TABLESPACE;
Certifique-se de ter o
/var/lib/mysql/ibdata1
no mesmo local de onde foi importado. Moral da história
Por favor, não use técnicas de IMPORT TABLESPACE em diferentes servidores. Basta fazer um mysqldump de tudo e importar o mysqldump. Despejos lógicos são sempre o caminho mais seguro a seguir !!!