cheng029 发表于 2014-4-14 10:53:03

discuz修复表以后版块帖子数变成0了

由于在修复mysql表的时候不小心带了-f参数,此参数的意思是在无法修复表的时候强制删除数据,所以导致把某个版块的帖子数据和帖子列表丢失了。无奈想办法恢复,参考以前备份的数据得知。pre_forum_post这个表是记录所有帖子和回复的表。
pre_forum_forum这个表是记录版块信息的表。
先查询丢失列表版块的id
你点击版块的时候会显示id
http://www.yunvn.com/forum-67-1.html
forum-67那么版块的id就是67
查询版块信息表:
select * from pre_forum_forum where fid='67'



threads列表示主题数,post表示主题数加上回复数。
上面的查询结果为0的话就代表丢失了,我已经恢复了所以不为0 了。
如果我们这两个列都为0了,只要把实际的主题数和posts数量更新进去就行了,怎么知道我们的主题数和posts数量呢。
那就可以查询pre_forum_post这个表:
主题量:
select count(*) from (select tid,count(*) from pre_forum_post where fid='67' group by tid)
主题和回复数量:
select count(*) from pre_forum_post where fid='67
把你查询的数据更新到数据库就可以恢复了。
update pre_forum_forum set posts='5146',threads='1259'where fid='67'
页: [1]
查看完整版本: discuz修复表以后版块帖子数变成0了