wordpress 突然跳到安装界面 修复 frm 表的问题(idbdata1 文件必须存在)

朋友一网站使用 wordpress 搭建的,我很少使用这种东西,突然出现这种情况还真的很难找,因为要去理解什么逻辑实现要重新安装表的结构,很苦恼啊,最终 google 找到一篇文章说是 wordpress 使用的表都是 innodb 引擎,表损坏导致的,于是我打算修复一下,可以使用 phpMyAdmin 打开数据库发现只有库没有表了,经过一番的折腾我找到了几篇帖子,具体过程就是先新建一个表,然后在新建的表里面建立所有 wordpress 需要的表,建立完所有需要的表之后,关闭 mysql

1
service mysql stop

修改 mysql 的配置文件

1
innodb_force_recovery = 4

然后将旧库里面的表的结果 copy 一份到新库,之后修改两个库的名字,将两个库的名字对调。然后启动数据库

1
service mysql start

看看数据库的表里面的数据吧,全部都回来了。嘿嘿

再次关闭 mysql

1
service mysql stop

1
innodb_force_recovery = 4

注释掉

重新启动 mysql

1
service mysql start

回复完毕。

之后想了想,是以为最近一次服务器空间满了,当时误以为是表坏了,又由于对数据库的不了解,本来只是删除 ib_logfile0 和 ib_logfile1 两个文件,结果删除后还是没有用,于是将 ibdata1 做了一个临时备份,还好没有删掉,今天按照上面的操作做了多次,最后是将 ibdata1 文件重新 copy 回来后,数据才回来的。因为新的 ibdata1 没有相关数据的点,找不到数据吧,所以如果没有或者 ibdata1 这个文件不是原来的是无法恢复数据的。

参考文章:

使用 ibdata 和 frm 文件恢复 MySQL 数据库

如何从 IBData 中恢复 MySQL 数据库

Mysql ibdata 丢失或损坏如何通过 frm&ibd 恢复数据