云服务器

首页 > 网站运行/故障 > Discuz论坛网站出现:Database Error 报错的原因

Discuz论坛网站出现:Database Error 报错的原因

Discuz论坛网站突然出现错误:

(144) Table ‘./sciedu_ss/common_syscache’ is marked as crashed and last (automatic?) repair failed
SELECT * FROM common_syscache WHERE cname IN(‘userapp’,’portalcategory’,’diytemplatenameportal’,’setting’,’style_default’,’cronnextrun’)

错误原因:

这个错误是 Discuz! 论坛程序(常见于 Discuz! X3.2/X3.4 等版本)的数据库报错,核心原因是服务器MySQL 数据库中名为 common_syscache 的表发生了损坏

具体原因通常有以下几种:

  1. 表引擎故障:最常见的是 MyISAM 存储引擎的表,因服务器突然断电、MySQL 进程被强制杀死、磁盘空间不足或写入过程中断,导致索引文件和数据文件不一致,标记为 crashed
  2. 自动修复失败:MySQL 在检测到表损坏后会尝试自动修复(automatic repair),但如果损坏较严重(如索引结构被破坏),自动修复会失败,并报出你看到的错误。
  3. 服务器硬件/配置问题:内存条不稳定、磁盘坏道、MySQL 的 my.cnf 配置不当(如 tmp_table_size 太小)也可能引发此类问题。
  4. 插件或升级异常:安装或卸载插件时 SQL 语句执行出错,或者 Discuz! 版本升级中途中断,可能导致缓存表结构损坏。

解决方法:

通过 phpMyAdmin 手动修复

  1. 登录你的网站主机控制面板(如 cPanel宝塔面板等),找到 phpMyAdmin
  2. 选择报错的数据库(通常是 Discuz! 对应的那个库)。
  3. 在左侧表列表中找到 common_syscache 这张表。
  4. 勾选该表,在底部下拉菜单中选择 「修复表」​ 或 「Repair table」
  5. 等待提示成功,刷新论坛首页即可。
图片描述

发表回复