将.frm和.opt文件导入MySQL

时间:2011-04-21 14:07:08

标签: mysql database

我使用的是从下载并安装的MySQL 5.5.1.1:http://dev.mysql.com/downloads/

我想将.frm和.opt数据库文件从我的本地机器导入我的mysql数据库。

我创建了一个新的Databbase连接,以帮助我从我的机器导入文件。但我无法导入.frm文件,因为我不断收到错误消息:格式不受支持。

有人可以帮助我如何将文件导入MySQL客户端吗?

谢谢你, Ĵ

4 个答案:

答案 0 :(得分:26)

至于导入任何MySQL数据,需要考虑三(3)件事情。

的MyISAM

导入MyISAM表非常简单,只需将给定表的扩展名.frm.MYD.MYI文件移动到MySQL文件夹中。例如,如果表名是mydata,那么三(3)个文件

  • mydata.frm
  • mydata.MYD
  • mydata.MYI

以下可能是噩梦的噩梦。导入InnoDB完全取决于许多因素,这些因素分为两类:

InnoDB(innodb_file_per_table已禁用[默认])

所有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(innodb_file_per_table已启用)

对于每个InnoDB表,都会有两个文件。例如,如果mydata数据库中的InnoDB表名为mytable,那么您将拥有/var/lib/mysql/mydata/mytable.frm和/var/lib/mysql/mydata/mytable.ibd。 .ibd文件包含表的数据和索引页。要导入单个表,您必须

  1. mytable.frm放在/var/lib/mysql/mydata folder上的Server-T
  2. mytable.ibd放在/var/lib/mysql/mydata folder上的Server-T
  3. 运行ALTER TABLE mydata.mytable IMPORT TABLESPACE;
  4. 确保/var/lib/mysql/ibdata1与导入的位置相同。

    故事的道德

    请不要在不同的服务器上使用IMPORT TABLESPACE技术。只需执行一切mysqldump并导入mysqldump。逻辑转储始终是最安全的方式!!!

答案 1 :(得分:6)

我使用xampp上的文件进行了mysql导入。我有很多数据库,所以我不想通过mysqldump路由。这个过程是:

  1. 安装新xampp,但不启用服务
  2. 更新 my.ini 以包含我在之前安装时使用的所有自定义设置。
  3. 确认mysql已成功启动
  4. 从旧安装中复制所有数据库文件夹(在数据文件夹中),但 mysql phpmyadmin webauth 除外。
  5. 确认mysql已成功启动
  6. 复制 ib_logfile0 ib_logfile1 ibdata1 。首先重命名文件,不要在出现问题时覆盖。
  7. 确认mysql已成功启动
  8. data / mysql 文件夹复制以下文件: db.frm db.MYD db.MYI user.frm user.MYD user.MYI 。不要覆盖新的,以防它不起作用。
  9. 确认mysql已成功启动
  10. 在流程结束时,我让mysql与我的所有数据库和用户完美配合。

答案 2 :(得分:0)

在停止mysql服务之后,重命名当前的'data'文件夹后,只需将所需的'data'文件夹复制到目标mysql数据文件夹。并使用phpmyadmin导出到sql文件,并恢复当前数据文件夹,并导入所需的数据sql。

答案 3 :(得分:0)

我认为您可能遇到的一个大问题来自于您甚至无法在phpmyadmin界面中查看这些.frm文件(因为它们确实是不完整的集合)。我建议你从当前位置删除这些文件,并使用phpmyadmin在“查询”选项卡下重新创建这些表作为SQL [删除IFF你有所有的数据库脚本。如果没有,你仍然可以从旧转储中得到这个。如果不是gaian,请勿删除)。谢谢:chagbert。