常熟人家blog头像

Discuz!3.2论坛版块被误删除后怎么恢复

时间:16-05-06 栏目:Discuz!X 楼主:鲁智深 评论:0 点击: 2,577 次

前几天由于自己的操作失误,将论坛板块给删除了,Discuz!后台版块被删除后是无法恢复的,如下图:

板块删除

板块删除

想了一下,我用的是阿里云ESC服务器,应该有快照保存的,本人没有每天备份的习惯,打开阿里云后台看见我在5月1日居然保存了快照,但又不能直接恢复到5月1日,到今天可就差3天时间啊,不能全部快照回滚,所以就开始数据恢复旅程!如下图:

阿里云快照

阿里云快照

第一:必须先保存现在当前时间的数据,有用户量的话最好在晚上11后开始操作,避免用户数据丢失!

接下来,就是操作了,要找到被删除版块数据,操作---》快照回滚到5月1日-》进入论坛--》后台--》删除所有数据(不包括被误删除数据),也是就说留下“被误删除的数据版块”。

删除干净后,进入数据库管理后台,我用的是phpmyadmin,找到2张表是“pre_forum_post帖子表”和“pre_forum_thread主题表”,如下图:

数据表

数据表

将其数据内容全部导出保存下来,以sql后缀名保存到本地。我是直接导出sql语句保存,当然保存方法有很多,我就不一一说明了,如下图:

直接导出sql语句

直接导出sql语句

别以为这就是结束了,这才刚刚开始呢,找到了“pre_forum_post帖子表”和“pre_forum_thread主题表”,当然还有图片和附件数据表呢,如下图,一张“附件关联表”和“10张附件图片信息表”。

附件表

附件表

将其内容如同上面一样,全部保存成sql数据。

接下来,“pre_forum_post帖子表”和“pre_forum_thread主题表”,图片附件数据表都有了,还缺呢?对了,还缺图片、附件文件没有保存(ps:mysql只是保存附件图片路径地址),图片附件文件藏在:bbs\data\attachment\forum,所以带日期文件夹里面。

附件文件夹

附件文件夹

接下来,快照回滚到最新时间数据,在论坛上新建一个版块,版块名称就叫“我被误删除”,并记录下fid如下图:

板块fid

板块fid

打开“pre_forum_post帖子表”和“pre_forum_thread主题表”,修改其字段fid值,对应如上图fid,批量修改字段fid,sql语句是:

1
update 表名 set 字段名=新值;
fid字段

fid字段

准备工作已经全部完成了,下面开始导入数据,在论坛后台执行sql语句,如下图:

部分sql语句

部分sql语句

插入数据时,如有出现“sql报错主键已存在”,那有可能是一开始删除数据不干净,导出数据重复,因为现在导入的数据是“被误删的数据”。

最后将图片和附件上传到服务器中,打开帖子会发现图片附件还是不显示,只要点一下“编辑”就显示了!具体原因为什么,可能是php是需要浏览器刷新后才能执行语言吧!

版块数据就这样恢复了!

收藏本页

    声明:  如有关于wordpress代码问题请留言即可...!

发表评论

------====== 本页公告 ======------
   建站程序也叫开源程序,建站程序都是免费的,现在国内比较流行的建站程序有个人博客(wordpress,zblog),门户(dedecms),商城(shopex),论坛(discuz!)本博就是用wordpress作为基础搭建起来的网站。