17

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

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

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

4

4 回答 4

24

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

可能的情况

  1. MYSQL 程序已损坏,无法启动。全新安装 MYSQL 没有恢复数据。
  2. 电脑坏了,但硬盘还在工作
  3. Windows 已损坏且无法启动,但数据是安全的。

供您参考,在 MYSQL 中,带有扩展名的文件是MYD表数据,FRM文件是表定义,MYI文件是表索引。my.ini 中还ibdata指定了一个文件,即 InnoDB 表空间文件。您必须是administrator,才能访问Document and Settings文件夹或Program Files 文件夹。

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

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


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

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

我建议您在dev.mysql.com/doc/mysql-backup-excerpt/5.5/en/innodb-backup.html的 mysql 文档中查看 InnoDB 的冷备份方法

于 2015-01-08T03:07:44.760 回答
4

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

于 2012-05-21T06:15:31.587 回答
1

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

这可能对其他人有帮助。

面临的问题:

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

  2. 如果无法打开旧硬盘中的文件夹(“The request could not be executed because of an I/O device error message”):
    答:更改对应的磁盘名称。按照此链接中给出的说明“按照此链接中给出的说明”

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

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

  5. Stop and start the Mysql server in services:
    Answer: To know how to restart a mysql server follow the instruction given in the link:
    https://www.quora.com/How-do-I-start-the-MySQL-server-in-Windows-10/answer/Allu-Saiprudhvi?prompt_topic_bio=1

  6. Now you can check it, this should successfully make the data inside database accessible using SQL server.

THANK YOU

于 2020-01-30T13:24:40.083 回答