1

我有一个导致问题的查询,根据谷歌,这是因为临时内存不足。

几天前,同样的查询工作得很好,我的网站被黑了,从备份恢复后,我得到了这种类型的错误,但是数据库和往常一样旧。

         "Incorrect key file for table /tmp/#sql_xxx_x.MYI" error

          1030 Got error 28 from storage engine   

我搜索了这两种情况,发现这是因为临时内存,但是 temp 突然变成问题几天前相同的查询工作得很好,我使用 mysql explain 检查了该查询,它的输出很好,因为它说只检查了 144 行给出 20 行的输出。

然后我用这个命令来看看我在 temp 中有多少内存,它说

      ddfdd@drddrr[~]#  df -h
       Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/VolGroup-lv_root
                  3.6T   49G  3.4T   2% /
      tmpfs                 7.8G     0  7.8G   0% /dev/shm
     /dev/sda1             243M   86M  145M  38% /boot
     /usr/tmpDSK           4.0G  3.8G     0 100% /tmp

那么问题出在哪里,我该如何解决呢?任何建议将不胜感激。

4

1 回答 1

0

仔细检查 /tmp 没有其他文件使用所有空间并阻止 MySQL 创建磁盘 tmp 表。

或者,您可以在根切片上创建一个新的 tmp 目录,因为它有足够的空间,然后更改 my.cnf 中的 tmpdir 变量以指向它。虽然这不是动态变量,但需要重新启动。确保 chown 目录,以便 MySQL 可以写入它。

于 2013-04-29T16:57:39.817 回答