Mysql

Mysql 錯誤 28 設備上沒有剩餘空間

  • July 24, 2018

我一直遇到與 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 重建它。這是一個高級主題,我不會在這裡解釋。

引用自:https://dba.stackexchange.com/questions/57543