Wikipedia,自由的百科全书
安装我们的论坛之后,会在mysql数据库中建立两种形式的表,一种是MyISAM,另一种是Heap,目前我们的标准论坛的数
据库中,只有cdb_sessions是Heap形式的,即是我们常说的内存表,这个你可以打开安装时候的install文件夹里面的
discuz.sql文件,可以参照着查看每个表的具体形式!
对于MyISAM形式的表,在数据库中每建立一个表,都会产生三个文件,后缀名分别是MYI(myindex),MYD(mydata),FRM,
其中myi为数据库索引文件的后缀名,myd为数据文件的后缀名,frm为表的格式的后缀名,所以,一个表中的记录会存在myd格式的文件中,表的字段信息会存在frm格式的文件中。
对此种格式的表,一般容易出现myi和myd格式文件的损害,例如:
1、Can‘t open ‘cdb_posts.MYI‘
2、SELECT groupid,url,title FROM cdb_onlinelist WHERE 1 ORDER BY displayorder Error: Got error 127 from storage engine
Errno.: 1030
这两种错误一般都会提示1030错误,即表出现错误,读取不了表中的数据了!
这种错误,你就得修复一下表了!有三种方法可以修复!
第一种,可以使用下载的程序包中的utilities/repair.php进行修复
第二种,可以使用phpmyadmin的修复表的功能进行修复
第三种,对于有主机权限的用户,可以在mysql的dos安装目录下,使用myisamchk命令进行检查
建议先用第一种方法进行修复cdb_sessions是无法修复的表,它只产生一个文件,后缀名为frm,即只有表的格式的文件,这类表的数据只存放在内存中,
cdb_sessions表中记录了当前登录的用户的登录信息,因此如果此表发生了损害,说明此表的格式文件损害或者在内存中的数据不可读取了,
一般是读表的时候造成表的锁死了,那只能重建一下,你可以打开安装时候install文件夹里的discuz.sql文件,然后找到cdb_sessions表的建表语句,到phpmyadmin里面执行就行了