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のファイルを削除しましたが、役に立ちませんでした。
「デバイスにスペースが残っていない」ということは、パーティションのiノードが不足していることも意味します。使用する df -i
iノードの使用状況を確認します。
編集:各ファイル、ディレクトリ、シンボリックリンクには1つのiノードが必要です。したがって、アイデアは/パーティションからいくつかのファイルを削除することです。ファイルの大きさは関係ありません。もちろん、移動に便利なファイルが見つかった場合は、パーティション上のいくつかのファイルを選択して別のパーティションに移動することもできます。
Iノードが不足するのは珍しいことです。そのため、気付いていない場所に、サイズの小さいファイルや長さがゼロのファイルでいっぱいのディレクトリが存在する可能性があります。残念ながら、私はこの種のものを見つける簡単な方法を知りません。ランニング find / -xdev
は、パーティション上のすべてのファイルとディレクトリの名前を出力します。空のファイルでいっぱいの疑わしいディレクトリを見つけることができる場合があります。
システムにディスクパーティションを追加できる場合は、/パーティション上のディレクトリを選択して、別のパーティションにすることができます。そのディレクトリ内のすべてのファイルを新しいパーティションにコピーし、それらを/パーティションから削除してから、古い(現在は空の)ディレクトリの上に新しいパーティションをマウントします。
核となるオプションは、/パーティションをバックアップし、それをワイプして、より多くのiノードで再構築することです。これは高度なトピックなので、ここでは説明しません。
インデックスのない列を選択すると、大量の一時ディスク領域が消費されます。だからあなたは選択肢があります:
1)一時ファイルシステムに十分なスペースがあるかどうかを確認します。
2)索引にある列のみを使用することをSQLステートメントで確認します。
3)必要なインデックスを追加します。