Discuz数据库security_failedlog错误及修复

最近跑了之前的论坛转了转,发现一直在报数据库中表security_failedlog错误,百度了好久,最终找到解决方案。

何为pre_security_failedlog:

pre_security_failedlog:防水墙失败日志记录。

问题现象

Discuz! Database Error(144) Table '.bbsdatasecurity_failedlog' is marked as crashed and last (automatic?) repair failedDELETE FROM security_failedlog WHERE pid = 0 AND tid = 0 AND uid = 0 OR lastfailtime = 0 OR failcount >= 10 PHP Debug No.FileLineCode 1index.php126require(%s) 2forum.php53runhooks() 3source/function/function_core.php1064hookscript(%s, %s, %s, Array, %s) 4source/function/function_core.php1110plugin_security->common(Array) 5source/plugin/security/security.class.php45plugin_security->_reportLoginUser(Array) 6source/plugin/security/security.class.php233plugin_security->_retryReport() 7source/plugin/security/security.class.php294Cloud_Service_Security->retryReportData() 8api/manyou/Service/Security.php521table_security_failedlog->deleteDirtyLog() 9source/plugin/security/table/table_security_failedlog.php27discuz_database::delete(%s, %s) 10source/class/discuz/discuz_database.php48discuz_database::query(%s, %s) 11source/class/discuz/discuz_database.php136db_driver_mysql->query(%s, false, true) 12source/class/db/db_driver_mysql.php151db_driver_mysql->halt(%s, %d, %s) 13source/class/db/db_driver_mysql.php218break()

解决方案

1.直接关闭防水墙(治标不治本)

由于这是插件防水墙的缘故,最简单的就是进入后台关掉。但这只治标不治本,最好去数据库修复一下。若不修复,在更新论坛版本时会提示如下:

2.修复或重建security_failedlog表

进入mysql数据库

删除表pre_security_failedlog:

DROP TABLE  pre_security_failedlog;

下面 这个也可以,只是我已经确定存在了,就直接用的上面的

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

修复表的过程就不再写了,有兴趣的朋友们可以自己探索下。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

mysql索引index相关命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

20920
来自专栏别先生

MYSQL中约束及修改数据表

MYSQL中约束及修改数据表 28:约束 约束保证数据的完整性和一致性 约束分为表级约束和列级约束 约束类型包括:     NOT NULL(非空约束)   ...

23580
来自专栏java达人

oracle、mysql 分页查询比较

1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * ...

31180
来自专栏乐沙弥的世界

使用导出导入(datapump)方式将普通表切换为分区表

      随着数据库数据量的不断增长,有些表需要由普通的堆表转换为分区表的模式。有几种不同的方法来对此进行操作,诸如导出表数据,然后创建分区表再导入数据到分区...

7710
来自专栏杨建荣的学习笔记

分区表放入keep pool,recycle pool的问题及解析(34天)

因为生产环境的性能瓶颈,经过诊断,给出的结论是需要把几个表和索引放入keep pool,几个索引放入recycle pool. 其实放入keep pool 确实...

34070
来自专栏Netkiller

Spring data 如何定义默认时间与日期

本文节选自《Netkiller Java 手札》 作者:netkiller, 出处:http://www.netkiller.cn/java/index.htm...

41850
来自专栏有趣的django

14.MySQL(二) 数据之表操作表内容操作Mysql 连接事务外键

数据之表操作 1.创建表 语法:CREATE TABLE table_name (column_name column_type); create table...

37390
来自专栏nummy

MySQL取得日期(前一天、某一天)

mysql> select date_sub(curdate(),interval 1 day); +----------------------------...

9520
来自专栏Netkiller

数据库安全·时间一致性

以下节选择《Netkiller Architect 手札》地址 http://www.netkiller.cn/architect/ 接下来几周的话题是数据库安...

37170
来自专栏lgp20151222

Mysql 获取表的comment 字段

查看获取表内字段注释: > show full columns from tablename; 或是  show full fields from tab...

17410

扫码关注云+社区

领取腾讯云代金券