MySQL myisamchk 遇到 Disk is full 的解法

MySQL 使用 myisamchk 修復 *.MYI 時, 出現下述訊息:

myisamchk: Disk is full writing '/tmp/ST3lJjsW' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to c ontinue after freeing disk space)

myisamchk: Retry in 60 secs. Message reprinted in 600 secs

解法1:

  • 由訊息可以知道, myisamchk 需要使用到 /tmp, /tmp 容量不夠就會出現此訊息, 所以如果 /tmp 可以清出空間, 清出 /tmp 的空間就可以解決了.

但是如果 /tmp 本身切的就不夠大, 可以使用下述解法.

解法2:

此解法取自: free disk space error using myisamchk

  • myisamchk -rq --sort_buffer_size=256M --key_buffer_size=256M --read_buffer_size=32M --write_buffer_size=32M --sort-index --analyze --tmpdir=/more-disk-space-directory/ /var/lib/mysql/database/T1.MYI
  • 註: 修改 --tmpdir=/more-disk-space-directory/ 指定到空間比較大的地方去即可.

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料