Mysql
Mysql 錯誤 28 設備上沒有剩餘空間
我一直遇到與 mysql 相同的問題,錯誤程式碼為 28,這意味著設備上沒有足夠的空間。
現在奇怪的是有足夠的空間,這裡有一些我在Google上找到的提示,以確定我是否有足夠的空間。(請記住,我是 linux 系統的新手)
du -sh /var/log/mysql
36K /var/log/mysql
df -h
Filesystem Size Used Avail Use% Mounted on udev 1.5G 4.0K 1.5G 1% /dev tmpfs 604M 224K 604M 1% /run /dev/disk/by-uuid/7a06472d-4cc9-4383-93b0-4ecee9b21c04 24G 15G 8.4G 64% / none 5.0M 0 5.0M 0% /run/lock none 1.5G 0 1.5G 0% /run/shm /dev/vda1 461M 36M 402M 9% /boot
我一直在嘗試解決這個問題很長時間,但沒有任何幫助,任何建議都會有所幫助。
編輯
最奇怪的部分是,如果我刪除 200-800mb 的大文件,這個錯誤會在很短的時間內消失,然後又會再次出現。我實際上已經刪除了大約 10GB 的文件,希望能解決這個問題,但它沒有幫助。
“設備上沒有剩餘空間”也可能意味著分區沒有 inode。用於
df -i
檢查 inode 使用情況。編輯:每個文件、目錄和符號連結都需要一個 inode。所以想法是從/分區中刪除一些文件。文件有多大並不重要。當然,如果你能找到一些方便移動的文件,你當然可以選擇分區上的一些文件並將它們移動到另一個分區。
用完 inode 是不尋常的,因此您可能有一些目錄充滿了您不知道的小文件或零長度文件。不幸的是,我不知道找到這種東西的簡單方法。執行
find / -xdev
將列印分區上每個文件和目錄的名稱。您可能會發現一些充滿空文件的可疑目錄。如果您可以為系統添加額外的磁碟分區,您可以在 / 分區上選擇一些目錄並將其製成單獨的分區。將該目錄中的所有文件複製到新分區,從 / 分區中刪除它們,然後將新分區掛載到舊(現在為空)目錄的頂部。
核選項是備份 / 分區,擦除它,然後用更多的 inode 重建它。這是一個高級主題,我不會在這裡解釋。