将.frm和.opt文件导入MySQL

JJu*_*ior 19 mysql database

我使用MySQL 5.5.1.1下载并安装来自:http://dev.mysql.com/downloads/

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

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

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

谢谢你,J

Rol*_*DBA 28

至于导入任何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-S中/etc/my.cnf中设置的每个InnoDB变量必须在Server-T上的/etc/my.cnf中设置.

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上服务器-T
  2. 放置mytable.ibd/var/lib/mysql/mydata folder上服务器-T
  3. ALTER TABLE mydata.mytable IMPORT TABLESPACE;

确保您/var/lib/mysql/ibdata1在导入的位置相同.

故事的道德启示

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

  • @Kawu这在某种程度上是正确的,因为答案已经超过两年了.MySQL的后续版本现在能够以更清洁的方式传输数据库.请阅读有关可传输表空间的MySQL文档:http://dev.mysql.com/doc/refman/5.6/en/tablespace-copying.html (2认同)

Kal*_*nGi 6

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

  1. 安装新的xampp,但不要启用服务
  2. 更新my.ini以包含我之前安装时的任何自定义设置.
  3. 确认mysql已成功启动
  4. 复制旧安装中的所有数据库文件夹(在数据文件夹内),但mysql,phpmyadminwebauth除外.
  5. 确认mysql已成功启动
  6. 复制ib_logfile0,ib_logfile1ibdata1.首先重命名文件,不要在出现问题时覆盖.
  7. 确认mysql已成功启动
  8. data/mysql文件夹复制以下文件:db.frm,db.MYD,db.MYI,user.frm,user.MYD,user.MYI.不要覆盖新的,以防它不起作用.
  9. 确认mysql已成功启动

在这个过程的最后,我让mysql完美地与我的所有数据库和用户完美配合.