web-dev-qa-db-ja.com

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のファイルを削除しましたが、役に立ちませんでした。

5
Linas

「デバイスにスペースが残っていない」ということは、パーティションのiノードが不足していることも意味します。使用する df -i iノードの使用状況を確認します。

編集:各ファイル、ディレクトリ、シンボリックリンクには1つのiノードが必要です。したがって、アイデアは/パーティションからいくつかのファイルを削除することです。ファイルの大きさは関係ありません。もちろん、移動に便利なファイルが見つかった場合は、パーティション上のいくつかのファイルを選択して別のパーティションに移動することもできます。

Iノードが不足するのは珍しいことです。そのため、気付いていない場所に、サイズの小さいファイルや長さがゼロのファイルでいっぱいのディレクトリが存在する可能性があります。残念ながら、私はこの種のものを見つける簡単な方法を知りません。ランニング find / -xdevは、パーティション上のすべてのファイルとディレクトリの名前を出力します。空のファイルでいっぱいの疑わしいディレクトリを見つけることができる場合があります。

システムにディスクパーティションを追加できる場合は、/パーティション上のディレクトリを選択して、別のパーティションにすることができます。そのディレクトリ内のすべてのファイルを新しいパーティションにコピーし、それらを/パーティションから削除してから、古い(現在は空の)ディレクトリの上に新しいパーティションをマウントします。

核となるオプションは、/パーティションをバックアップし、それをワイプして、より多くのiノードで再構築することです。これは高度なトピックなので、ここでは説明しません。

9
Kenster

インデックスのない列を選択すると、大量の一時ディスク領域が消費されます。だからあなたは選択肢があります:

1)一時ファイルシステムに十分なスペースがあるかどうかを確認します。

2)索引にある列のみを使用することをSQLステートメントで確認します。

3)必要なインデックスを追加します。

1
NobsWare