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

Joh*_*Woo 16 mysql database-restore

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

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

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

Joh*_*Woo 23

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

可能的情景

  1. MYSQL程序已损坏,无法启动.全新安装的MYSQL没有恢复数据.
  2. 计算机崩溃但硬盘仍在运行
  3. Windows损坏并无法启动,但数据是安全的.

对于您的信息,在MYSQL中,扩展名为MYDFRM文件是表数据,文件是表定义,MYI文件是表索引.还有ibdatamy.ini中指定的文件,即InnoDB tablesapce文件.您必须是一个administrator,以便您可以访问Document and Settings文件夹或Program Files文件夹.

  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管理员并登录到您的数据库服务器,您应该能够看到已传输的数据库及其数据.

  • I did this and the service fails to start :( (3认同)

kha*_*val 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:\ Users \所有用户\应用程序中Windows XP中的Data\MySQL.请注意,程序数据(win7)以及应用程序数据(WinXP)是隐藏文件夹.
  • 我们只关注应用程序数据或程序数据文件中的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的冷备份方法.

  • 谢谢,这有助于我恢复我的数据库.我使用的是服务器版本5.5.在崩溃的PC上找到数据目录,基本上将除*.err和*.pid之外的所有内容复制到新的服务器机器上.您可以将其复制到任何目录.然后,在新PC上编辑`my.ini`,找到名为`datadir`的参数行到你的新目录.示例:`datadir = D:/ MySql_Data /` (2认同)

wal*_*lyk 5

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

  • 可能值得创建新数据库,然后*在复制现有文件之前关闭服务器*只是为了确保不存在内部状态问题。 (5认同)