我使用的是从下载并安装的MySQL 5.5.1.1:http://dev.mysql.com/downloads/
我想将.frm和.opt数据库文件从我的本地机器导入我的mysql数据库。
我创建了一个新的Databbase连接,以帮助我从我的机器导入文件。但我无法导入.frm文件,因为我不断收到错误消息:格式不受支持。
有人可以帮助我如何将文件导入MySQL客户端吗?
谢谢你, Ĵ
答案 0 :(得分:26)
至于导入任何MySQL数据,需要考虑三(3)件事情。
导入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-T的/etc/my.cnf中设置/etc/my.cnf中设置的每个InnoDB变量必须在Server-T上设置。
对于每个InnoDB表,都会有两个文件。例如,如果mydata数据库中的InnoDB表名为mytable,那么您将拥有/var/lib/mysql/mydata/mytable.frm
和/var/lib/mysql/mydata/mytable.ibd。 .ibd
文件包含表的数据和索引页。要导入单个表,您必须
mytable.frm
放在/var/lib/mysql/mydata folder
上的Server-T mytable.ibd
放在/var/lib/mysql/mydata folder
上的Server-T ALTER TABLE mydata.mytable IMPORT TABLESPACE;
确保/var/lib/mysql/ibdata1
与导入的位置相同。
请不要在不同的服务器上使用IMPORT TABLESPACE技术。只需执行一切mysqldump并导入mysqldump。逻辑转储始终是最安全的方式!!!
答案 1 :(得分:6)
我使用xampp上的文件进行了mysql导入。我有很多数据库,所以我不想通过mysqldump路由。这个过程是:
在流程结束时,我让mysql与我的所有数据库和用户完美配合。
答案 2 :(得分:0)
在停止mysql服务之后,重命名当前的'data'文件夹后,只需将所需的'data'文件夹复制到目标mysql数据文件夹。并使用phpmyadmin导出到sql文件,并恢复当前数据文件夹,并导入所需的数据sql。
答案 3 :(得分:0)
我认为您可能遇到的一个大问题来自于您甚至无法在phpmyadmin界面中查看这些.frm文件(因为它们确实是不完整的集合)。我建议你从当前位置删除这些文件,并使用phpmyadmin在“查询”选项卡下重新创建这些表作为SQL [删除IFF你有所有的数据库脚本。如果没有,你仍然可以从旧转储中得到这个。如果不是gaian,请勿删除)。谢谢:chagbert。