1030 Mendapat kesalahan 28 dari mesin penyimpanan

205

Saya sedang mengerjakan proyek di mana saya perlu membuat database dengan 300 tabel untuk setiap pengguna yang ingin melihat aplikasi demo. itu berfungsi dengan baik tetapi hari ini ketika saya menguji dengan pengguna baru untuk melihat demo itu menunjukkan kepada saya pesan kesalahan ini

1030 Got error 28 from storage engine

Setelah menghabiskan beberapa waktu di Google, saya menemukan itu adalah kesalahan yang berhubungan dengan ruang database atau file sementara. Saya mencoba untuk memperbaikinya tetapi saya gagal. sekarang saya bahkan tidak dapat memulai mysql. Bagaimana saya bisa memperbaiki ini dan saya juga ingin meningkatkan ukuran ke maksimum sehingga saya tidak akan menghadapi masalah yang sama lagi dan lagi.

Kalajengking
sumber
1
Menyatakan yang jelas ... apakah Anda memiliki cukup ruang kosong di partisi tempat data mysql disimpan? Platform apa yang Anda jalankan? Localhost atau perusahaan hosting?
DCoder
@ DCoder: - Saya punya server di Amazon cloud
ScoRpion
1
@ShowketBhat saya memiliki masalah yang sama, /tmpfolder saya memiliki 100% penggunaan ruang. Boleh saja menghapus semua file dari folder / tmp ini? Dan pertanyaan lain, mengapa tidak dihapus secara otomatis?
Dima Deplov

Jawaban:

412

Kesalahan Mysql " 28 dari mesin penyimpanan " - berarti " tidak cukup ruang disk ".

Untuk menampilkan ruang disk, gunakan perintah di bawah ini.

myServer# df -h

Hasilnya harus seperti ini.

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev
Oleksandr Diudiun
sumber
6
Untuk informasi tambahan, Anda akan mendapatkan kesalahan yang sama jika / tmp filesystem mencapai 100% penggunaan.
Kumar
1
Bahkan jika Anda memiliki data_dir Mysql Anda di partisi yang berbeda (atau disk) yang memang memiliki ruang kosong, Anda harus memiliki ruang kosong di / dan / tmp (tentu saja Anda dapat memiliki yang terakhir di partisi / disk yang berbeda)
Diego Andrés Díaz Espinoza
1
Anda menyelamatkan hari saya, saya menemukan file lambat log 390 Gb ((
mulya
1
Jawaban bagus. Ini menghemat banyak waktu saya. +1
Pratik Soni
34

Untuk memperluas ini (meskipun itu adalah pertanyaan yang lebih tua); Ini bukan tentang ruang MySQL itu sendiri mungkin, tetapi tentang ruang secara umum, dengan asumsi untuk file tmp atau sesuatu seperti itu. Dir data mysql saya tidak penuh, partisi / (root) adalah

Maarten
sumber
10

Saya memiliki masalah yang sama di AWS RDS. Itu karena Ruang Freeable (Ruang Penyimpanan Hard Drive) Penuh. Anda perlu menambah ruang, atau menghapus beberapa data.

Gregory Burns
sumber
8

/ Tmp saya adalah 100%. Setelah menghapus semua file dan me-restart mysql semuanya bekerja dengan baik.

Sami Onur Zaim
sumber
2

Folder / var / log / apache2 saya adalah 35g dan beberapa log di / var / log berjumlah 5g dari hard drive 40g saya. Saya menghapus semua log * .gz dan setelah memastikan log lain tidak akan melakukan hal-hal buruk jika saya mengacaukannya, saya juga membersihkannya.

echo "clear" > access.log

dll.

PyromonkeyGG
sumber
3
Itu cara yang sangat aneh untuk menghapus file log bukan? Kenapa tidak rm saja?
user1175849
3
Mungkin Anda bisa menyimpan file dan izin?
Zachary Dahan
9
Saya sarankan menggunakan truncateuntuk menghapus log,truncate -s 0 access.log
2

Periksa / backup Anda untuk melihat apakah Anda dapat menghapus cadangan yang lebih lama tidak diperlukan.

Yakub
sumber
1

Saya memiliki masalah serupa, karena replikasi log biner saya .

Jika ini masalahnya, buat saja cronjob untuk menjalankan kueri ini setiap hari:

PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 2 DAY );

Ini akan menghapus semua log biner yang lebih lama dari 2 hari.

Saya menemukan solusi ini di sini .

GabrielOliv
sumber
0

Sederhana: $ sth-> finish (); Mungkin akan menyelamatkan Anda dari khawatir tentang hal ini. Mysql menggunakan ruang tmp sistem alih-alih ruangnya sendiri.

Craig
sumber
0
sudo su


cd /var/log/mysql

dan terakhir ketik: > mysql-slow.log

Ini berhasil untuk saya

Kaushik Thanki
sumber
0

Jatuhkan basis data yang bermasalah, lalu reboot layanan mysql ( sudo service mysql restart, misalnya).

Sergio Belevskij
sumber