1030 Depolama motorundan 28 numaralı hata var


205

Demo uygulamasını görmek isteyen her kullanıcı için 300 tablo ile bir veritabanı oluşturmak gerekiyor bir proje üzerinde çalışıyorum. iyi çalışıyor ama bugün bir demo görmek için yeni bir kullanıcı ile test ederken bana bu hata mesajını gösterdi

1030 Got error 28 from storage engine

Bir süre googling harcadıktan sonra veritabanı veya geçici dosyaların alanı ile ilgili bir hata olduğunu buldum. Düzeltmeye çalıştım ama başarısız oldum. şimdi bile mysql başlatmak mümkün değil. Bunu nasıl düzeltebilirim ve ben de aynı sorunu tekrar tekrar yüzleşmeyecek şekilde boyutu maksimuma çıkarmak istiyorum.


1
Açıkça belirtmek gerekirse ... mysql verilerinin depolandığı bölümde yeterli boş alan var mı? Hangi platformda çalışıyorsunuz? Localhost mu yoksa hosting şirketi mi?
DCoder

@DCoder: - Amazon bulut üzerinde bir sunucum var
ScoRpion 17:12

1
@ShowketBenim aynı sorun var, benim /tmpklasör% 100 alan kullanımı var. Bu / tmp klasöründeki tüm dosyaları silmek yeterli midir? Ve başka bir soru, neden otomatik olarak silinmiyor?
Dima Deplov

Yanıtlar:


412

Mysql hatası " 28 depolama motorundan " - " yeterli disk alanı yok " anlamına gelir .

Disk alanını göstermek için aşağıdaki komutu kullanın.

myServer# df -h

Sonuçlar böyle olmalıdır.

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev

6
Ek bilgi için, / tmp dosya sistemi kullanımın% 100'üne ulaşırsa aynı hatayı alırsınız.
Kumar

1
Mysql data_dir'inizde boş alan bulunan farklı bir bölümde (veya diskte) olsanız bile, / ve / tmp üzerinde boş alanınız olmalıdır (elbette farklı bölümlerde / diskte
sonuncunuz olabilir


1
Güzel cevap. Çok zamanımı kurtardı. +1
Pratik Soni

34

Bunu genişletmek için (eski bir soru olmasına rağmen); Muhtemelen MySQL alanının kendisi ile ilgili değil, genel olarak alan ile ilgili, tmp dosyaları veya bunun gibi bir şey olduğu varsayılarak. MySQL veri dizinim dolu değildi, / (root) bölümü


10

AWS RDS'de de aynı sorunu yaşadım. Freeable Space (Sabit Disk Depolama Alanı) Dolu olduğundan kaynaklanıyordu. Alanınızı artırmanız veya bazı verileri kaldırmanız gerekir.


8

/ Tmp değerim% 100 idi. Tüm dosyaları kaldırdıktan ve mysql yeniden başlattıktan sonra her şey iyi çalıştı.


2

/ Var / log / apache2 klasörüm 35g ve / var / log içindeki bazı günlükler toplam 40g sabit sürücümün diğer 5g'si idi. Tüm * .gz günlüklerini temizledim ve diğer günlüklerin onlarla uğraştığımda kötü şeyler yapacaklarından emin olduktan sonra, onları da temizledim.

echo "clear" > access.log

vb.


3
Bir günlük dosyasını temizlemenin çok garip bir yolu değil mi? Neden sadece rm değil?
user1175849

3
Belki o zaman dosya ve izinleri saklayabilirsiniz?
Zachary Dahan

9
truncateGünlükleri temizlemek için kullanmanızı öneririm ,truncate -s 0 access.log

2

Gerekli olmayan eski bir yedeği silip silemeyeceğinizi görmek için / yedeklemenizi kontrol edin.


1

Benzer bir sorun vardı, çünkü çoğaltma ikili günlüklerim.

Bu durumda, her gün bu sorguyu çalıştırmak için bir cronjob oluşturun:

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

Bu işlem 2 günden daha eski olan tüm ikili günlükleri kaldıracaktır.

Bu çözümü burada buldum .


0

Basit: $ sth-> finish (); Muhtemelen bu konuda endişelenmenize engel olur. Mysql, kendi alanı yerine sistemin tmp alanını kullanır.


0
sudo su


cd /var/log/mysql

ve son olarak şunu yazın: > mysql-slow.log

Bu benim için çalıştı


0

Sorun veritabanını bırakın, sonra mysql hizmetini ( sudo service mysql restartörneğin) yeniden başlatın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.