MySQL error 1146: “table doesn’t exist” pada phpmyadmin biasanya terjadi ketika sedang merestore mysql database dari yang lama ke database baru, seperti pada gambar ini :
Kesalahan tersebut terjadi karena berbagai alasan, alasan utamanya meliputi:
- InnoDB crash
- Missing ibdata file in the MySQL datadir
- Improperly placed .frm files
- Incorrect permissions and ownership of MySQL datadir
- Corrupt tables or improper table names
Untuk memperbaiki kesalahan dapat dilakukan berdasarkan analisis penyebab kesalahan, diantaranya :
- Restart MySQL server: Jika kesalahan terjadi karena server tidak benar dimatikan atau kesalahan terkait layanan MySQL
- Repair the tables: MySQL memiliki tools seperti ‘myisamchk’ untuk memperbaiki database dan tabel yang rusak.
- Backup restore : Memulihkan backup database adalah pilihan terakhir untuk mengembalikan tabel ke kondisi kerja. Konfigurasikan dan siapkan file cadangan di server untuk memastikan bahwa tidak ada kehilangan data atau down time karena crash atau kesalahan yang tidak terduga.
- Copy ibdata file : Jika file ‘ibdata’ hilang, salin dari cadangan dan mengembalikannya ke direktori data untuk MySQL, setelah membuang tablespace untuk menghindari kerusakan atau kesalahan.
- InnoDB crash recovery : Jika cadangan tidak lengkap atau file ibdata juga rusak.
Untuk mengatasi masalah tersebut solusinya adalah :
- copy dulu pada data mysql data folder (pada linux : /var/lib/mysql atau pada windows : C:\ProgramData\MySQL\MySQL Server 5.1\data)
- stop dulu mysql service pada server yang baru, kemudian paste semua folder database, kecuali pada database “mysql”.
- pastikan copy dan paste folder databasenya, contoh “aplikasinilaipertamaku” dari backup folder ke server baru
- pastikan juga untuk merubah permissionnya menjadi “mysql” user untuk file dan foldernya
- restart mysql service, dan lihatlah database sudah terkonfigurasi dengan benar dan pastikan anda dapat mengakses tabel tanpa ada yang error (1146).
terima kasih KK