解决Discuz! info: MySQL Query Error问题

今天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开始搜索,得出理论性结果如下:

  1. 该问题也会发生在windows服务器上(C:\WINDOWS\TEMP\MY32),亦是跟临时目录有关
  2. 该问题跟论坛采用“首页四格”插件有关

解决方法如下:

  1. 采用phpmyadmin对出问题的表进行repair(修复),独立主机亦可用mysql工具修复
  2. 采用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进行修复试试看。当然,一切操作记得尽可能做个备份,以防万一!

总结:遇到问题先看清问题的意思,然后对症下药,不依赖搜索引擎,但是以之为参考!

Tags: discuz

上一篇: 解决discuz"头像保存过程中发生网络错误,请重试"错误
下一篇: 为xp安装IIS5.1搭建.net运行环境笔记

相关文章

发表评论