从 frm 文件恢复 MySQL 表

从 frm 文件恢复 MySQL 表

我很绝望,希望有好心人能来救我!我正在处理恢复一台完全崩溃的服务器。一切都恢复了,除了一个使用 MySQL 的域有问题(服务器上没有其他域使用 MySQL)。服务器是 Windows 2008,运行 Plesk 9.5。

MySQL 数据库已恢复(我不确定具体如何恢复)但 8 个表中只有两个可用(网站无法连接到其他 6 个,并且通过 PHPMyAdmin 看不到它们)。

我不是服务器管理员,我是前端 Web 开发人员,我的服务器管理员告诉我这 6 个表已被“锁定”并且无法访问。我只是迫切希望找到一种方法来获取可访问的数据。

基本上,数据已从崩溃的服务器复制。我们可以访问旧的 C 盘。在该 C 盘上,MySQL 数据库的数据文件已复制到重建的服务器。因此,在重建的服务器上,我们有此文件夹:

C:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\Data

此文件夹中有以下文件夹/文件:

/my_database
    /tblnews.MYD
    /tblpage.MYD
    /tblhospice.frm
    /tblevent.frm
    /tblpage.frm
    /tblnews.frm
    /tblgallery.frm
    /tbleventcategory.frm
    /tblhospiceregion.frm
    /tbleventregion.frm
    /tblnews.MYI
    /tblpage.MYI
    /db.opt

/mysql
    / *loads of frm, MYD and MYI files, such as 'columns_priv.frm', 'func.frm' etc.

/ib_logfile0
/ib_logfile1
/ibdata1
/my.ini
/Server5797.err
/Server5797.pid

两个可以正常工作的表是 tblnews 和 tblpage。这两个表也包含 MYI 和 MYD 文件。六个不能正常工作的表只包含 .frm 文件。

有什么方法可以让我在这里的任何地方获取数据来恢复这 6 个无法访问的表吗?也许我可以通过某种方式在本地 PC 上获取工作副本并编写数据脚本?

非常感谢大家对此提供的帮助。我非常非常感激。

答案1

我可以确认确实可以仅使用.frmibdata1文件恢复数据。请参见此处:http://www.nerdydork.com/restoring-mysql-innodb-files-on-windows.html。我的解决方案稍微困难一些,而且我的配置设置等都在不同的地方,但总的来说,这个解决方案对我有用...并且还救了我的命 ;)

答案2

这些.frm文件只是表定义,不包含任何数据,因此您无法从中恢复数据。您需要找到.MYD丢失的文件,然后才能从中恢复文件.MYI

如果没有 .MYD 文件或合适的备份/转储,您就没有数据。

相关内容