如果Discuz中表不存在,应该如何解决?

你使用Discuz论坛程序建站,或许会遇到1146报错。

例:

[1146] Table ‘shujuku1.common_session’ doesn’t exist

[1146] Table ‘shujuku2.common_cron’ doesn’t exist

以上是两条数据库报错信息。

不会英语没关系,我们可以使用百度翻译等众多翻译软件来看报错后的信息提示。

这两条的大概意思是:

Table:数据表。shujuku1/shujuku2:这2个是数据库名,一般就是自己的数据库,记住在单引号开头的是数据库名就行。

common_session/common_cron:这2个是数据表,也就是需要重建的表。

doesn’t exist:不存在。如果不认识这2个单词可以使用在线翻译。

简单的讲:就是数据库的这连个表不存在。

既然知道这些不存在了,我们就得修复。

解决办法

去官网下载官方的Discuz程序包(下自己网站的版本),然后打开 \upload\install\data\install.sql CTRL+F搜索报错的表名common_session。找到建表语句

如:

DROP TABLE IF EXISTS pre_common_session;
CREATE TABLE pre_common_session (
  sid char(6) NOT NULL DEFAULT '',
  ip1 tinyint(3) unsigned NOT NULL DEFAULT '0',
  ip2 tinyint(3) unsigned NOT NULL DEFAULT '0',
  ip3 tinyint(3) unsigned NOT NULL DEFAULT '0',
  ip4 tinyint(3) unsigned NOT NULL DEFAULT '0',
  uid mediumint(8) unsigned NOT NULL DEFAULT '0',
  username char(15) NOT NULL DEFAULT '',
  groupid smallint(6) unsigned NOT NULL DEFAULT '0',
  invisible tinyint(1) NOT NULL DEFAULT '0',
  `action` tinyint(1) unsigned NOT NULL DEFAULT '0',
  lastactivity int(10) unsigned NOT NULL DEFAULT '0',
  lastolupdate int(10) unsigned NOT NULL DEFAULT '0',
  fid mediumint(8) unsigned NOT NULL DEFAULT '0',
  tid mediumint(8) unsigned NOT NULL DEFAULT '0',
  UNIQUE KEY sid (sid),
  KEY uid (uid)
) TYPE=HEAP;

其实第一行可以不要,不过无所谓,这句代码的意思是如果这个表存在则删除,反正已经没有了。

注意:上面的SQL命令,结合自己的表前缀来进行修改。如果你的表前缀不是pre,请自己修改成自定义的前缀名。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索