从恢复的硬盘恢复MySQL数据库文件夹

时间:2012-05-21 06:12:15

标签: mysql database-restore

我能够恢复损坏的操作系统(Windows XP)的MySQL服务器5.5的数据库文件夹

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\data\

如何手动将其还原到新的MySQL服务器?当我打开文件夹时,我发现了几个文件夹,我相信这些是数据库。我没有提交任何SQL文件。

4 个答案:

答案 0 :(得分:23)

好的,我得到了自己问题的答案。

可能的情景

  1. MYSQL程序已损坏且无法启动。全新安装MYSQL 没有恢复数据。
  2. 计算机崩溃但硬盘仍然存在 工作
  3. Windows损坏且无法启动,但数据安全。
  4. 为了您的信息,在MYSQL中,扩展名为MYD的文件是表数据,FRM文件是表定义,MYI文件是表索引。 my.ini中还指定了ibdata文件,即InnoDB tablesapce文件。您必须是administrator,以便可以访问文档和设置文件夹或程序文件文件夹。

    1. 打开Window Explorer(Windows键+ E)或打开我的电脑,然后转到数据库文件所在的数据文件夹。
    2. 我建议您复制数据文件夹中的所有文件夹,而不仅仅是选择要复制的文件夹。复制数据库文件夹和ibdata文件(不要复制ib_logfile(x)文件!) 请注意,ibdata文件可能与数据文件不在同一位置。 要了解它的位置,请阅读如何在Windows中查找MYSQL数据库文件。
    3. 转到目标计算机,打开系统服务。 (在Windows菜单“搜索程序和文件”输入框中键入services.msc)
    4. 在“服务”窗口的右侧面板上,沿列表滚动并查找名称“MYSQL”。选择MYSQL并单击鼠标右键单击。一旦它停止,你的状态将变为空白而不是。
    5. 同样查找数据文件夹的位置。找到它后,我建议你备份文件夹或重命名它。粘贴已从源计算机复制到数据文件夹的文件夹和ibdata文件。
    6. 返回“服务”窗口并选择返回MYSQL。用鼠标右键单击它并单击以恢复MYSQL服务。
    7. 打开MYSQL管理员并登录到您的数据库服务器,您应该能够看到已传输的数据库及其数据。

答案 1 :(得分:7)

@ JohnWoo的答案仅适用于MYSIAM数据库引擎。我的答案严格来自 InnoDb 存储引擎,即FRMIBD个文件


要恢复InnoDb数据库,我完全按照这些步骤成功了。在指出这些步骤之前,我想告诉大家,我从Wndows XP的恢复硬盘中执行了恢复并将其转移到Windows 7.因此,这将有助于Windows XP和Windows 7用户。所以,我遵循的步骤是: -

  • 两台机器上的MySQL服务器必须停止。当然,如果OS /硬盘崩溃,该机器上的服务器已经停止。
  • 现在,MySQL安装在2个文件夹中(至少对我来说) - >
    1。程序文件/程序文件(x86),以及 2。 C:\ Program Data \ MySQL在Windows 7和C:\中Windows XP中的用户\所有用户\应用程序数据\ MySQL。 请注意,程序数据(win7)以及应用程序数据(WinXP)是隐藏文件夹。
  • 我们只关注应用程序数据或程序数据文件夹中的 MySQL Server **文件夹。 Program Files中的Mysql文件夹没有用,因为它没有你的数据。
  • 现在复制MySQL Server **文件夹中的 my.ini 文件。
  • 打开数据文件夹并复制这些文件
    1。所有的ib_logfile *文件
     2.所有ibdata *文件
    3.包含.frm和.ibd文件的数据库文件夹(您想要的)
  • 现在,复制目标计算机上面两点中提到的文件。 强烈建议您备份目标计算机中的已替换文件。
  • 现在,重启服务器。如果你做对了,你将恢复你的数据库没有任何错误。

我建议你在dev.mysql.com/doc/mysql-backup-excerpt/5.5/en/innodb-backup.html

的mysql文档中查看InnoDB的冷备份方法

答案 2 :(得分:4)

我认为默认情况下MySQL的文件管理非常简单。创建一个简单的新数据库,并将恢复的文件复制到响应中创建的mysql子文件夹中,替换任何创建的数据库文件。如果这不起作用,请在新数据库中创建一个表,以获得可能需要的其他内容的提示。

答案 3 :(得分:1)

我也面临同样的问题,花了将近两到三天的时间来解决问题。我已经厌倦了我所看到的所有其他令人困惑的答案。最后,我从旧驱动器中检索了所有数据,现在可以在新的Microsoft Server安装中成功访问它们。

这可能会帮助其他人。

面临的问题:

  1. 在旧硬盘中查找数据库文件:
    答案:请按照此链接中给出的说明进行操作:
    https://www.quora.com/Where-is-the-database-stored-in-the-Microsoft-SQL-server/answer/Allu-Saiprudhvi?prompt_topic_bio=1

  2. 如果无法打开旧硬盘中的文件夹(“由于I / O设备错误消息而无法执行该请求”):
    答案:更改相应的磁盘名称。遵循此链接中给出的说明“遵循此链接中给出的说明”

  3. 获取数据库文件夹后, 首先下载与旧硬盘驱动器中相同版本的Mysql服务器,您可以检查文件夹名称本身提到的版本。

  4. 下载相同版本后,将数据库文件夹粘贴到数据文件夹中,如上面的说明1所示。

  5. 在服务中停止并启动Mysql服务器:
    答案:要了解如何重启mysql服务器,请按照链接中给出的说明进行操作:
    https://www.quora.com/How-do-I-start-the-MySQL-server-in-Windows-10/answer/Allu-Saiprudhvi?prompt_topic_bio=1

  6. 现在您可以检查它,这应该可以使SQL Server中的数据库内部数据成功访问。

谢谢