2012-01-12 13 views
96

Bu tabloyu tamir ediyordum aniden sunucu askıda kaldım ve geri döndüğümde tüm tablolar tamam ama bu kullanımda 'kullanımda' ve tamir etmeye çalıştığımda Devam et.mysql tablosu çöktü olarak işaretlendi ve son (otomatik?) Onarım başarısız oldu

ERROR 144 - Table './extas_d47727/xzclf_ads' is marked as crashed and last (automatic?) repair failed 

Onarmak için ne yapabilirim?

+0

Bu, çoğunlukla temel dosya sistemi serbest inode'lardan çıktığında gerçekleşti. Df -hi ile kontrol edin. Genellikle bir şey, örneğin küçük temizlenmemiş php oturum dosyaları. – Zrin

cevap

189

MySQL işleminiz çalışıyorsa, durdurun. Debian üzerinde: Veri klasörünüze gidin.

cd /var/lib/mysql/$DATABASE_NAME 

deneyin çalışırken: Debian

myisamchk -r $TABLE_NAME 

Bu işe yaramazsa, deneyebileceğiniz:

myisamchk -r -v -f $TABLE_NAME 

Yine tek MySQL sunucusunu başlatabilirsiniz. Debian üzerinde:

sudo service mysql start 
+1

Yukarıdaki komutu denedim Bu hatayı aldım Yeni tempfile oluşturulamıyor: 'xzclf_ads.TMD' – GoodtheBesT

+1

Lütfen güncellenmiş yanıtımdan diğer seçenekleri deneyin. –

+0

Teşekkür çalıştım görünüyor görünüyordu ama bu hatayı vermeyi bıraktı? "myisamchk: Disk yazımı dolu '/ tmp/STp7Q4qR' (Errcode: 28). Birinin boş yer beklemesi bekleniyor ... (Disk alanını boşalttıktan sonra sunucunun çalışmaya devam etmesi için 60 saniye bekleyiniz) myisamchk: Yeniden Dene 60 saniye içinde. Mesaj 600 saniyede tekrar basıldı " – GoodtheBesT

12

/var/lib/mysql sonra aşağıdaki çözüm kullanmaya taşırken size izin reddi verirse

$ cd /var/lib/ 
$ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME> 
80

aşağıdaki sorguyu çalıştırmayı deneyin:

repair table <table_name>; 

Aynı sorunu yaşadım ve problemi çözdüm.

+4

Basit ve mükemmel bir çözüm :) –

+1

mükemmel bir çözüm benim sorunumu çözdü ... – SINGH

+3

hayat koruyucu! Bunu çözmenin en kolay yolu +1 – JohnA10

3

data_dir'a gidin ve dosyasını tablosunu onardıktan sonra kaldırın.

+0

'data_dir' nedir? – CMCDragonkai

+0

bu komutu grep -r datadir/etc/mysql/'ile arar. Debian ve ubuntu altında '/ var/lib/mysql' olmalıdır. – ThorstenS

3

myisamchk: error: myisam_sort_buffer_size is too small hata mesajı aldım.

Ben çalışması için onarım açıklamaya USE_FRM eklemek için gerekli

myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G 
1

çözüm.

REPAIR TABLE <table_name> USE_FRM;