Back to Forum Re New

[PMA] Discuz! info: MySQL Query Error Errno.: 145 (Discuz!7.0论坛登录报错)

一、问题情况
在登录秀场曝料论坛时,提示这个错误Discuz! info: MySQL Query Error
Time: 2026-4-28 9:26amScript: /forum/logging.php
SQL: SELECT count, lastupdate FROM [Table]failedlogins WHERE ip='183.63.119.21'Error: Table './showstorybbs/[Table]failedlogins' is marked as crashed and should be repaired Errno.: 145
Similar error report has been dispatched to administrator before.
到 [url]http://faq.comsenz.com[/url] 搜索此错误的解决方案

二、问题分析:
这是数据库错误,不是 Discuz 7.0 论坛程序本身坏了。
关键报错是这一句:
Table './showstorybbs/[Table]failedlogins' is marked as crashed and should be repairedErrno.: 145
意思是:
failedlogins 这张 MySQL 表损坏了,需要修复。
它通常是 MyISAM 表崩溃,常见于老 Discuz、服务器异常断电、MySQL 非正常关闭、磁盘空间不足等。

为什么会这样
常见原因:
服务器异常断电、MySQL崩溃、磁盘问题、老Discuz + MyISAM(很容易坏)

三、解决方案
先做这个:修复表
进入 phpMyAdmin,选择数据库 showstorybbs,找到类似:
cdb_failedlogins  或者  pre_failedlogins 的数据表 如有的话,比如数据表名为  sscdb_failedlogins

下面就可以修复该表。
点击上面“SQL”
然后输入:
FLUSH TABLES;REPAIR TABLE sscdb_failedlogins;
点执行 Go 。
如果报错(很常见)
再执行这个: REPAIR TABLE sscdb_failedlogins QUICK;
如果还不行: REPAIR TABLE sscdb_failedlogins EXTENDED;现在可以检查下该表是否搞好了
在 SQL 再跑一条:CHECK TABLE sscdb_failedlogins;
如果返回 OK,就完全没问题
如果还是不行(最后手段)
这个表其实是 登录失败记录表(不重要数据)
可以直接删表: DROP TABLE sscdb_failedlogins;


删完后 刷新论坛,Discuz 通常会自动重建该表,或直接不再报错
按照如上方案,问题解决了。
Back to Forum