关于Discuz数据库错误“SELECT count(*) FROM security_failedlog”的解决方法
下面是错误详情信息:
Discuz! Database Error (145) Table “XXXX/security_failedlog” is marked as crashed and should be repaired SELECT count(*) FROM security_failedlog
错误原因?
1.论坛搬家迁移过程中出现的错误;
2.论坛数据库中的security_failedlog数据表是记录防水墙失败日志记录的表,有可能是防灌水出现问题;
3.还有可能是因为系统环境的问题导致;
4.防灌水服务提示:“出了点小错,由于站点ID/通信KEY等关键信息丢失导致Discuz!云平台服务出现异常,使用诊断工具检测站点ID和KEY,如有疑问请访问官方论坛寻求帮助”;
5.论坛的云平台出现问题,建议开通云平台;
怎么解决这个错误?
1.通过Discuz自带的数据库修复工具进行修复,或者在数据库中进行表修复,修复方法可查百度;
2.删除security_failedlog数据表,然后重新建立这个数据表,详细代码见下面:
⑴进入数据库中打开SQL语句命令框;
⑵输入+运行:
DROP TABLE IF EXISTS pre_security_failedlog;
删除该数据表;
⑶然后再输入+运行:
CREATE TABLE pre_security_failedlog ( id int(11) NOT NULL AUTO_INCREMENT, reporttype char(20) NOT NULL, tid int(10) unsigned NOT NULL DEFAULT '0', pid int(10) unsigned NOT NULL DEFAULT '0', uid int(10) unsigned NOT NULL DEFAULT '0', failcount int(10) unsigned NOT NULL DEFAULT '0', createtime int (10) unsigned NOT NULL DEFAULT '0', posttime int(10) unsigned NOT NULL DEFAULT '0', delreason char(255) NOT NULL, scheduletime int(10) unsigned NOT NULL DEFAULT '0', lastfailtime int(10) unsigned NOT NULL DEFAULT '0', extra1 int(10) unsigned NOT NULL, extra2 char(255) NOT NULL DEFAULT '0', PRIMARY KEY (id), KEY pid (pid), KEY uid (uid) ) ENGINE=MYISAM DEFAULT CHARSET=gbk
重建该表,完成以上步骤即可正常访问。
3.能够正常访问后,可以尝试关闭论坛的防灌水服务。
是否这样就可以完全解决这个问题了?
不二版本发现这样并不能在根源上解决这个问题,在以后有了多余的时间一定好好研究如何根治“SELECT count(*) FROM security_failedlog”错误,现在这样也能够访问,只是再出现类似发布帖子的时候有可能会再度出现这样的问题。