很多站长突然发现自己的站打开报错 1146,就不知道该怎么办了,最常见的报错表是以下 2 个:
[1146] Table 'sqla1212142518.common_session' doesn't exist
[1146] Table 'sqlshou277.common_cron' doesn't exist
其实你认不认识这些英语没关系,只要知道大概什么意思就行,下面我解释下:
Table:数据表。
sqla1212142518 /sqlshou277: 这 2 个是数据库名,一般就是自己的数据库,记住在单引号开头的是数据库名就行。
common_session/common_cron:这 2 个是数据表,也就是需要重建的表。
doesn't exist:不存在。如果不认识这 2 个单词可以使用在线翻译。
知道这些了就容易了,哪个表不存在就重建哪个,当然这 2 个表里没有重要数据,重建就行,如果是 member 或者 post 表不存在那就得恢复数据了,否则就会导致没有会员或者帖子。
首先下载和自己论坛版本对应的标准程序,解压之后,打开 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;
其实第一行可以不要,不过无所谓,这句代码的意思是如果这个表存在则删除,反正已经没有了。
注意:如果你的表前缀不是默认的 pre_,那么需要把建表语句的 pre_替换成你正在用的表前缀。
复制建表语句,进入 phpmyadmin,随便点一个表,点击 SQL,粘贴建表语句,点执行即可。