Mysql Xampp中的InnoDB损坏

Mysql Xampp中的InnoDB损坏,mysql,xampp,innodb,Mysql,Xampp,Innodb,我有一个两周前的备份,这将是最后的手段,但DB文件本身似乎很好,似乎只有ibdata1文件有问题。如上所述,我在启动Xampp和MySQL之后立即使用它。以下是错误日志: 我没有做任何不寻常的事;它似乎刚刚启动并停止工作 我查阅了InnoDB recovery,但我尝试的解决方案要求MySQL能够正常工作,这不是因为损坏。有没有办法用一个坏的ibdata1文件来修复那些可能完好无损的IBD文件 编辑:我知道使用了innodb_force_recovery=#,我已经尝试过了……除了我在错误的my

我有一个两周前的备份,这将是最后的手段,但DB文件本身似乎很好,似乎只有
ibdata1
文件有问题。如上所述,我在启动Xampp和MySQL之后立即使用它。以下是错误日志:

我没有做任何不寻常的事;它似乎刚刚启动并停止工作

我查阅了InnoDB recovery,但我尝试的解决方案要求MySQL能够正常工作,这不是因为损坏。有没有办法用一个坏的
ibdata1
文件来修复那些可能完好无损的IBD文件


编辑:我知道使用了
innodb_force_recovery=#
,我已经尝试过了……除了我在错误的
my.ini
中尝试过。我不得不使用
bin
文件夹中的一个。现在似乎已修复。

ibdata1文件包含表空间信息和有关Mysql数据库的其他元数据

您可以尝试使用
innodb\u force\u recovery=1
一直到
innodb\u force\u recovery=6
,看看这是否解决了问题。尝试在您的
my.cnf
my.ini
for windows)文件中更改此选项,然后再次尝试重新启动mysql服务器

如果您能够使用恢复标志启动Mysql,那么您的数据库将处于只读模式。您应该对数据执行mysqldump,停止mysql,重新安装fresh,再次创建数据库,然后重新导入数据

以下是有关innodb恢复的更多信息的链接

如果你使用linux

另一个更复杂的选择是使用percona恢复工具包。这将重新调整表空间。不过,从经验来看,如果你是新手,导航有点困难,实施起来也需要一些时间

然而,工具箱的创建者阿库兹明斯基(多么酷啊!)提到他对工具箱做了重大改进

下载工具包的链接

与来自的演练链接

链接到akuzinsky的网站


除非这些数据是任务关键型的,否则我将恢复到2周前的备份。您在恢复此数据上花费的时间和精力可能远远超过了它的好处。

在我的例子中,mysql.ini没有innodb\u force\u恢复选项。 所以我把它添加到文件中,启动就可以正常启动了

我的案例ini文件的位置是

C:\xampp\mysql\bin\my.ini

innodb_force_recovery = 1
在我的例子中,数据在windows进行磁盘检查后被损坏。在适当的时候,数据库被破坏了


希望这也能帮助其他人。

你试过innodb_force_recovery=6吗?@akuzminsky我试过把它放在
xampp
文件夹的
mydefault.ini
文件夹的
mysql
下面,但似乎没有任何效果。那是正确的地方吗?是窗户吗?那一定是我的.inifwiw,我不支持percona数据恢复工具包。TwinDB中发布的具有新功能和错误修复的下一个版本是我离开Percona后创办的公司。为了继续开发数据恢复工具包,我为innodb创建了undrop。顺便说一句,恢复损坏的数据库并不是那么困难,现在工具包非常友好:)在意识到我在错误的文件中之后,一切都变得更加顺利了。。。在我运行恢复后,我是否只是删除该行,一切都恢复正常,还是我仍然需要担心文件的完整性,这是导出它的快速修复方法?Chris的教程基于2008年的0.3版。七年前!从那时起,工具包变得更加智能。我添加了大量新功能。它们对用户来说不是很明显,但使恢复算法更加可靠。我在两小时内完成的大多数损坏数据恢复案例。腐败是最简单的情况,因为字典是有效的,所有的文件都可以访问。非常酷…我会在有机会的时候检查它。希望我不会有太多:-)…很高兴认识你,谢谢你用你的工具包救了我!