DISCUZ快速解决数据库表缺失的问题的具体方法
很多站长使用discuz开源论坛程序建站在升级或者搬家之后都会遇到访问主页面的时候提示1146,根据提示几乎都是数据表丢失了而导致的,一般情况下遇到这样的情况站长们几乎都会登陆phpmyadmin去选中对应的数据库点击修复,可是并不是所有的数据表都是可以使用修复功能可以修复的,这里的修复只是修复损坏的数据表,而并不能把缺失的数据表给修复回来哦。今天道勤主机小编刚好遇到了类似的问题,一位站长朋友们也是使用免备案空间安装的论坛程序,再迁移之后出现了类似的情况,提示:Table ‘sqla1212142518.common_session’ doesn’t exist
Table ‘sqlshou277.common_cron’ doesn’t exist
道勤主机小编来解释下上面两行SQL语句的报错中文大意吧。
Table:数据表。
sqla1212142518 /sqlshou277:这2个是数据库名,一般就是自己的数据库,记住在单引号开头的是数据库名就行。
common_session/common_cron:这2个是数据表,也就是需要重建的表。
doesn’t exist:不存在。如果不认识这2个单词可以使用在线翻译。
discuz这款程序也是有特殊重要的表的,例如会员表一般都是保存在member这个数据表中,而论坛中的帖子都是保存在post这个表中的,相对而言这两个数据表是至关重要的,至于其它的数据表丢失了几乎都是可以通过新建来修复的。那么道勤主机小编就以上面两个普通的数据表来举例子吧,该如何修复呢?
具体方法如下:
第一步下载和自己论坛版本对应的标准程序,解压出来,找到\upload\install\data\install.sql的文件。CTRL+F搜索报错的表名common_session。找到建表语句,如图1所示:
然后使用高级编辑器建议使用Editplus打开install.sql文件。再使用快捷键CTRL+F查找:common_session如图2所示:
建表语句:
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;
第二步:登陆道勤主机控制面板–数据库管理–
第三步:登陆phpmyadmin之后,找到SQL,直接复制上面的建表语句,如图4所示:
这样点击执行之后,该数据表就重新建立好了,再看左侧数据库表中就可以看到了哦。以上步骤就是关于Discuz迁移或者升级过程中导致数据表缺失如何快速查找原表并创建的详细方法了。
页:
[1]