如何从硬盘导出MySQL数据库(数据文件夹)?

时间:2011-09-23 08:50:37

标签: mysql export restore

我知道,只是通过复制数据文件夹来尝试导出数据库真的很难过!但我有一个内置重要数据库的硬盘,我不知道如何将这个数据库导出到我的实际系统(winxp - mysql 5.0.37)。

所以,我已将old_harddisk / program / mysql / data / coge2010复制到mypc / programs / mysql / data / coge2010

结果:

  • 我在phpMyAdmin数据库摘要中看到cogemilla(4)(这是正确的!!!我的4个表!)
  • 如果我点击数据库,我只看到一张桌子(哦不!)
  • 在mysql错误日志文件中,我找到类似这样的消息:“... [错误]虽然该表的.frm文件存在但无法从InnoDB的内部数据字典中找到表coge2010 / soci。你已经删除并重新创建了InnoDB数据文件但是忘记删除InnoDB表的相应.frm文件,或者你已经将.frm文件移动到另一个数据库了?请参阅http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html如何解决问题。“

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您应该创建转储并将其导入新服务器。

在命令提示符下键入以下内容以创建转储文件:

mysqldump -h host -u user -p databaseName > dumpFile.sql

导入数据库:

mysql -h host -u user -p databaseName < dumpFile.sql

答案 1 :(得分:0)

This post可能对您有帮助。

Another post可能对您有帮助。

mysql表由3个文件(FRM / MYD / MYI)定义。在您的情况下,数据库文件夹中缺少FRM文件。

如果可以运行旧硬盘的mysql服务器,则可以更轻松地转储数据库。 The following link向您展示了如何执行此操作

答案 2 :(得分:0)

如果符合以下条件,您只能复制InnoDB表: 1.您的数据库已停止。 2.复制所有InnoDB文件(ibdata * ib_logfile * / *。ibd

您可以使用转储/恢复来复制单个表。

您可以使用'ALTER TABLE sometable ENGINE = MyISAM'将其转换为MyISAM,然后复制MYI,MYD和FRM。

如果您使用Percona Server,Percona XtraBackup可以执行单表还原。