我很绝望,希望有好心人能来救我!我正在处理恢复一台完全崩溃的服务器。一切都恢复了,除了一个使用 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
我可以确认确实可以仅使用.frm
和ibdata1
文件恢复数据。请参见此处:http://www.nerdydork.com/restoring-mysql-innodb-files-on-windows.html。我的解决方案稍微困难一些,而且我的配置设置等都在不同的地方,但总的来说,这个解决方案对我有用...并且还救了我的命 ;)
答案2
这些.frm
文件只是表定义,不包含任何数据,因此您无法从中恢复数据。您需要找到.MYD
丢失的文件,然后才能从中恢复文件.MYI
。
如果没有 .MYD 文件或合适的备份/转储,您就没有数据。