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

发布于 2024-12-06 06:29:19 字数 673 浏览 1 评论 0原文

我知道,尝试仅通过复制数据文件夹来导出数据库真的很可悲!但我有一个硬盘,里面有一个重要的数据库,我不知道如何将该数据库导出到我的实际系统(winxp - mysql 5.0.37)。

因此,我已将 old_harddisk/program/mysql/data/coge2010 复制到 mypc/programs/mysql/data/coge2010

结果:

  • 我在 phpMyAdmin 数据库摘要中看到 cogemilla (4)(这是正确的!我的 4 个表!)
  • 如果我单击数据库,我只看到 1 个表(哦不!)
  • 在 mysql 错误日志文件中,我发现如下消息:"...[ERROR] 找不到表coge2010/soci来自InnoDB的内部数据字典,尽管该表的.frm文件存在,也许您已经删除并重新创建了InnoDB数据文件,但忘记删除InnoDB表相应的.frm文件,或者您已经移动了.frm。文件到另一个数据库?请参阅http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html 如何解决该问题。”

有什么想法吗?

I know, it is really sad trying to export a database just by copying the data folder! But I have a hard disk with an important database inside and I don't know how to export this database onto my actual system (winxp - mysql 5.0.37).

So, i've copied old_harddisk/program/mysql/data/coge2010 to mypc/programs/mysql/data/coge2010

Result:

  • I see cogemilla (4) on my phpMyAdmin databases summary (it's correct!!! my 4 tables!)
  • If I click the database, I see just 1 table (oh no!)
  • On the mysql error log file I find messages like this one: "...[ERROR] Cannot find table coge2010/soci from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data files but have forgotten to delete the corresponding .frm files of InnoDB tables, or you have moved .frm files to another database? See http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html how you can resolve the problem."

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

三生殊途 2024-12-13 06:29:19

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

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

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

要导入数据库:

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

You should create a dump and import it on the new server.

In Command Prompt type the following to create the dumpfile:

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

To import the database :

mysql -h host -u user -p databaseName < dumpFile.sql
如梦亦如幻 2024-12-13 06:29:19

我想分享我的解决方案,
我将硬盘与旧表连接起来。
将 (c:\ProgramData\MySQL{server}) 上的文件 my.ini 中的值更改为

datadir=current-path-data

硬盘中的路径(在我的例子中,只需将 c:\ 更改为 d:\ )

重置MySQL服务WINKEY+R ->服务.msc ->单击重新启动。
我的 SQL 服务

进入工作台,通过数据导出功能转储所有表后,所有旧表都在那里。
将my.ini改回本地磁盘,重置Mysql服务路径,将数据导入到正确的表中。
工作起来就像一个魅力。

I want to share my solution,
I connected the hard disk with the old table.
Changed a value inside the file my.ini on (c:\ProgramData\MySQL{server}) from

datadir=current-path-data

to the path in the harddisk (in my case just change the c:\ to d:\ )

Reset the MySQL service WINKEY+R -> services.msc -> click restart.
my SQL service

Entered the workbench and all old the table was there, after I dumped all the table via the data export function.
Changed back the my.ini to the local disk reset the Mysql service path and imported the data to the correct table.
Worked like a charm.

明月夜 2024-12-13 06:29:19

您只能在以下情况下复制 InnoDB 表:
1. 您的数据库已停止。
2. 复制所有 InnoDB 文件 (ibdata* ib_logfile* /*.ibd

您可以使用 dump/restore 来复制单个表。

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

如果您使用 Percona Server,

You can only copy InnoDB tables if:
1. Your database is stopped.
2. You copy all InnoDB files (ibdata* ib_logfile* /*.ibd

You could use dump/restore to copy a single table.

You could user 'ALTER TABLE sometable ENGINE=MyISAM' to convert it to MyISAM and then copy the MYI,MYD and FRM.

Percona XtraBackup can do single table restores if you're using Percona Server.

迷鸟归林 2024-12-13 06:29:19

这篇文章可能会对您有所帮助。

另一篇文章可能会对您有所帮助。

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

如果您可以运行旧硬盘上的 mysql 服务器,那么转储数据库会更容易。 以下链接向您展示了如何执行此操作

This post may help you.

Another post which may help you.

A mysql table is defined by 3 files (FRM/MYD/MYI). In your case the FRM file is missing into the database folder.

If you can run the mysql server of the old hard disk it is easier to do a dump of your database. The following link shows you how to do this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文