Memperbaiki Error "mysql DB Error: Incorrect key file for table"


Tadi pagi saya mendapati suatu masalah mengenai situs yang saya kelola yakni terdapat notifikasi “mysql DB Error:  Incorrect key file for table; table.MYI try to repair it”. Entah apa penyebabnya, padahal tadi malam situs tersebut baik-baik saja. Mencoba mencari tahu apa penyebabnya dari mesin pencarian, nah berikut ini hal yang saya lakukan pada saat perbaikan tersebut yakini:

Pertama saya mendapati hasil, bahwa galat tersebut disebabkan oleh /tmp yang penuh. Saya pikir mungkin benar juga /tmp sudah penuh. Akhirnya, saya mencoba cek dengan perintah df -h hasilnya ternyata ruangan (space storage) masih sangat lega.

Terlihat bahwa /tmp saat ini baru terpakai 1%, dengan kata lain masalahnya bukan di sini. Kemudian saya mencoba melakukan pencarian lagi dengan kata kunci yang berbeda dan ketemu, yakni dengan cara memperbaiki berkas database tersebut ekstensi *.MYI .Perbaikan tersebut menggunakan myisamchk.

Sebelum melakukan itu, pastikan kita mengetahui di mana letak berkas database, umumnya di direktori /var/lib/mysql kalau belum yakin, kita cari saja berkasnya dengan find yakni:

sudo find / -name *.MYI

Jika sudah ketemu di mana letak berkasnya, langsung lakukan perintah berikut:

cd /var/lib/mysql
myisamchk -r */*.MYI

Nah perbaikan database telah selesai dilakukan, cek lagi apakah masih terjadi galat? Jika masih, lakukan kembali perbaikan dari dalam, yakni dengan masuk ke database server.

Login MySQL/MariaDB:

sudo mysql -u root

atau

sudo mysql -u root -p'PasswordAnda'

Kemudian lakukan perintah berikut:

use DATABASE_ANDA;
show tables;
REPAIR TABLE_ANDA tbl_name USE_FRM;

Langsung coba refresh situs tersebut, jika masih terjadi galat lakukan perintah repair table kembali sesuai dengan notifikasi galat tersebut sampai akhirnya galat hilang.

Dan viola.. saya berhasil! Akhirnya situs tersebut normal kembali.