Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Importar arquivos .frm e .opt para o MySQL


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
  1. Coloque o mytable.frm na pasta /var/lib/mysql/mydata folder no Servidor-T
  2. Coloque o mytable.ibd na pasta /var/lib/mysql/mydata folder no Servidor-T
  3. 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 !!!