Ini baru saja terjadi pada saya dan setelah beberapa saat saya menemukan jawabannya di artikel blog, dan ingin meletakkannya di sini juga.
Jika Anda menyalin direktori data MySQL dari /var/lib/mysql
ke /path/to/new/dir
, tetapi hanya salin folder basis data (yaitu mysql
, wpdb
, ecommerce
, dll) DAN Anda memiliki tabel innodb, tabel innodb Anda akan muncul di 'tampilkan tabel' tetapi menanyakannya (select
dan describe
) akan gagal, dengan kesalahan Mysql error: table db.tableName doesn't exist
. Anda akan melihat .frm
file di direktori db, dan bertanya-tanya mengapa.
Untuk tabel innodb, penting untuk menyalin ib*
file, yang dalam kasus saya adalah ibdata1
, ib_logfile0
, dan ib_logfile1
. Setelah saya melakukan transfer memastikan untuk menyalinnya, semuanya bekerja seperti yang diharapkan.
Jika file my.cnf Anda berisi "innodb_file_per_table", file .ibd akan ada di direktori db tetapi Anda masih memerlukan file ib*.