2013-04-29 91 views
1

我有一個查詢導致問題,根據谷歌它是因爲沒有足夠的臨時內存。儘管內存充足,但mysql存儲空間不足

相同的查詢工作很好,幾天前,我的網站被黑了,從備份恢復後,我得到這種類型的錯誤,但數據庫是像往常一樣。

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

      1030 Got error 28 from storage engine 

這兩種情況下我搜索後發現,這是因爲臨時的內存,但怎麼突然臨時成爲prblem相同的查詢是工作就好了幾天就回來的,我用mysql解釋檢查了查詢,其輸出爲好它說只有144行被檢查,以提供20行的輸出。

然後我用這個命令來查看臨時 多少真的我有記憶,它說

 [email protected][~]# 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 

所以問題出在哪裏以及如何解決它? 任何意見將不勝感激。

回答

0

仔細檢查/ tmp沒有使用所有空間的其他文件並阻止MySQL創建磁盤tmp表。

或者,您可以創建一個新的tmp目錄離開根片,因爲它有足夠的空間,然後在my.cnf中將您的tmpdir變量指向它。雖然這不是一個動態變量,並且需要重新啓動。確保chown該目錄,以便MySQL可以寫入它。