如果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,请自己修改成自定义的前缀名。

注明:本文为星速云原创版权所有,禁止转载,一经发现将追究版权责任!

(0)
上一篇 2022年7月20日 下午7:58
下一篇 2022年7月20日 下午7:58

相关推荐

发表评论

登录后才能评论
问答社区 QQ客服
微信客服
微信客服
分享本页
返回顶部