至于输入任何MySQL数据,需要考虑三(3)件事情。
MyISAM数据
导入MyISAM表是一个简单的方法,将给定表的扩展名.frm,.MYD和.MYI文件移动到一个MySQL文件夹中。例如,如果表名是mydata,那么三(3)个文件
> mydata.frm
> mydata.MYD
> mydata.MYI
以下可能是恶梦的恶梦。导入InnoDB完全取决于许多因素,分为两类:
所有InnoDB数据和索引页都位于/var/lib/mysql / ibdata1中。该文件必须从源计算机(Server-S)移动到目标计算机(Server-T),并放置在相同的绝对路径中。事实上,这里是令人震惊的:Server-S和Server-T必须相同。换句话说,您不能将InnoDB .ibd文件导入和导出到其他机器。它们只能在与.ibd创建的同一台机器上导入和导出。
您还必须从Server-S中移动/ var / ib / mysql / ib_logfile0和/ var / ib / mysql / ib_logfile1,并将它们放在Server-T上相同的绝对路径上。
您还必须确保Server-S中/etc/my.cnf中设置的每个InnoDB变量必须设置在Server-T上的/etc/my.cnf中。
对于每个InnoDB表,将有两个文件。例如,如果mydata数据库中的InnoDB表称为mytable,那么您将具有/var/lib/mysql/mydata/mytable.frm和/var/lib/mysql/mydata/mytable.ibd。 .ibd文件包含表的数据和索引页。要导入单个表,您必须
>将mytable.frm放在Server-T上的/var/lib/mysql / mydata文件夹中
>将mytable.ibd放在Server-T上的/var/lib/mysql / mydata文件夹中
>运行ALTER TABLE mydata.mytable IMPORT TABLESPACE;
确保你的/var/lib/mysql / ibdata1在它被导入的相同的地方。
故事的道德启示
请不要在不同的服务器上使用IMPORT TABLESPACE技术。只要做一个mysqldump的一切,并导入mysqldump。逻辑转储总是最安全的方式!