请选择 进入手机版 | 继续访问电脑版

微栖客

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 278|回复: 2

Discuz论坛更新缓存报错:“SELECT COUNT(*) FROM common_member_archiv...

[复制链接]

2

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2019-7-24 13:58:21 | 显示全部楼层 |阅读模式
discuz论坛更新缓存报错:“SELECT COUNT(*) FROM common_member_archive”解决方法
报错:“
  1. SELECT COUNT(*) FROM common_member_archive
复制代码


详细:“
  1. (1146) Table 'pre.common_member_archive' doesn't existSELECT COUNT(*) FROM common_member_archive
复制代码


发生原因:更新Discuz论坛缓存时出现错误
具体原因:不怎么清楚


回复

使用道具 举报

2

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2019-7-24 13:59:09 | 显示全部楼层
解决方法:
1.Discuz论坛后台—站长—数据库—升级(Discuz! 数据库升级 - 请将数据库升级语句粘贴在下面中执行语句 :
  1. DELETE FROM `pre_common_setting` WHERE `skey` = 'membersplit';
复制代码


2.如果DZ后台没有开启数据库执行语句功能权限,那么需要在网站根目录找到文件:“config/config_global.php” 用编辑软件打开,切记不要用记事本打开,搜索:
  1. $_config['admincp']['runquery'] = '0';
复制代码

将当中的0改为1即可在dz后头执行sql语句。
3.执行语句之后需要注意重新尝试更新论坛缓存,确认无误即可恢复“config/config_global.php”刚才的修改,在执行sql语句之前一定要注意备份数据库以防其它不可控错误发生。

※如果你的数据表前缀修改过,第二条的SQL执行语句一定要将数据表修改成对应的。


回复

使用道具 举报

2

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2019-7-24 13:59:31 | 显示全部楼层
来源:Discuz官方论坛
首先这个错误是大家经常遇到或者看到其他网站出现的一个问题,解决办法很多站长也都知道并且可以熟练解决,但是这问题是因为什么产生并且为什么会不断出现的呢? 出现这个错误的原因是Discuz!程序认为网站已做用户表优化,在注册/更新缓存等工作时就会去读取这个表,而网站实际是没有正常优化过用户表的,就没有正常创建这几个新表,导致错误.解决方案是DELETE FROM `pre_common_setting` WHERE `skey` = 'membersplit';这个是大家耳熟能详的解决方案。而在执行后还会不断出现这个错误的原因是很多从低版本升级至高版本的论坛在计划任务中勾选了每日用户表优化这个功能,而实际在X2.0~3中未到达条件的网站是不勾选优化的.所以当遇到这个问题时执行sql语句并去掉计划任务中每日用户表优化的勾.并更新缓存.这样就不会再次出现了

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|微栖客社区 |网站地图

GMT+8, 2019-8-23 17:05 , Processed in 0.214949 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表