今天discuz论坛出现问题,如下:
Discuz! info: MySQL Query Error
Time: 2009-9-14 4:30pm
Script: /bbs/index.php
SQL: SELECT t.*, f.name FROM [Table]threads t, [Table]forums f WHERE t.fid<>'0' AND f.fid=t.fid AND f.fid not in (125) AND t.displayorder not in (-1,-2) ORDER BY t.dateline DESC LIMIT 0, 10
Error: Error writing file '/tmp/MYAmg92O' (Errcode: 28)
Errno.: 3
到 http://faq.comsenz.com 搜索此错误的解决方案
按照个人经验,这是第一次遇到的问题,应该跟临时目录tmp有关。
操起g.cn开始搜索,得出理论性结果如下:
- 该问题也会发生在windows服务器上(C:\WINDOWS\TEMP\MY32),亦是跟临时目录有关
- 该问题跟论坛采用“首页四格”插件有关
解决方法如下:
- 采用phpmyadmin对出问题的表进行repair(修复),独立主机亦可用mysql工具修复
- 采用discuz tools进行数据库修复(链接:TOOLS 2009贺岁版)
而实际操作中,我先采用了重启服务器(自有vps服务器,linux系统),系统启动完成后依次启动php-cgi、nginx、mysql,重新打开论坛,一切正常。过了2个小时,论坛又出现那个问题,从问题上看是写入数据出错。检查临时目录权限,一切正常。不经意间想起这个vps只有5G空间,linux系统占用1.5G,该论坛图片甚多,莫非……
键入如下命令:
[root@centos www]# df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/sda1 5040 4784 0 100% /
看来是服务器空间被吃完了!马上删除一些没用的数据,估计是这几天论坛图片又传了好多,导致空间吃紧了!下一步就要去升级该vps了!硬件问题,这也实在不是我能解决的了!
而网上搜索来的答案中也并非没有用,比如修复表的操作,看到得出错是某个表出现问题提示需要修复,如下:
Error: Table '.\discuz\[Table]threads' is marked as crashed and should be repaired
而经过phpmyadmin无法修复的话,可以考虑上传discuz官方的tools进行修复试试看。当然,一切操作记得尽可能做个备份,以防万一!
总结:遇到问题先看清问题的意思,然后对症下药,不依赖搜索引擎,但是以之为参考!