Mengatasi MySQL Server Tidak Bisa Start

Beberapa kali, karena laptop saya hang dan terpaksa saya shutdown paksa, ketika laptopnya jalan lagi saya tidak bisa menjalankan server MySQL. Ketika saya jalankan ./mysqld, keluarnya malah error warning begini:

Cannot open tablespace mysql/slave_relay_log_info which uses space ID: 3 at filepath: ./mysql/slave_relay_log_info.ibd

Inti dari pesan error tersebut adalah MySQL tidak bisa membuka file tablespace (yang mana fundamental sekali untuk database InnoDB) untuk table slave_relay_log_info pada database mysql. Sebetulnya, di bawah pesan error tersebut ada beberapa rekomendasi cara perbaikannya, saya akan bahas disini.

1. Cek permission file tablespace yang bermasalah

Kalau pada contoh error di atas, maka saya harus mengecek permission dari file slave_relay_log_info.ibd, apakah memungkinkan diakses oleh user _mysql (atau user apa pun yang digunakan untuk menjalankan MySQL daemon) atau tidak? Biasanya sih kalau sebelumnya tidak ada masalah, tidak mungkin ujug-ujug ada masalah dengan file permission ini.

2. Hapus file tablespace yang bermasalah

Kalau misalnya tabel yang bermasalah itu tidak dibutuhkan, file tablespacenya bisa dihapus saja. Atau, kalau punya backup file tablespace-nya, bisa digunakan untuk me-replace file tablespace yang bermasalah (tapi isi datanya balik jadi seperti backup file tablespacenya). Tapi, kalau kejadiannya tablespace yang bermasalahnya adalah tablespace dari database bawaan seperti mysql, sebaiknya jangan coba-coba menghapus file tablespace yang problem. Bisa lebih runyam.

3. Masuk mode force recovery (ampuh)

Cara terakhir dan yang paling ampuh, adalah ubah konfigurasi MySQLnya, biasanya ada di file mysql.ini atau mysql.cnf. Caranya, di dalam file konfigurasi tersebut, tepat di bawah bagian [mysqld], tambahkan line konfig berikut:

innodb_force_recovery = 1

Lalu start MySQL service seperti biasa, dan harusnya semua normal MySQL bisa running kembali. Jika sudah normal begini, stop dulu MySQL nya, hapus lagi line konfig yang tadi ditambahkan, baru kemudian start lagi MySQL service nya dan bekerja seperti biasa.

Tinggalkan komentar