Това току-що ми се случи и след известно време намерих отговора в статия в блога и исках да го сложа и тук.
Ако копирате директорията с данни MySQL от /var/lib/mysql
към /path/to/new/dir
, но копирайте само папките на базата данни (т.е. mysql
, wpdb
, ecommerce
, и т.н.) И вие имате innodb таблици, вашите innodb таблици ще се покажат в 'show tables', но заявките към тях (select
и describe
) ще се провали с грешката Mysql error: table db.tableName doesn't exist
. Ще видите .frm
файл в директорията db и се чудя защо.
За innodb таблици е важно да копирате над ib*
файлове, които в моя случай бяха ibdata1
, ib_logfile0
и ib_logfile1
. След като извърших прехвърлянето, като се погрижих да ги копирам, всичко работи според очакванията.
Ако вашият my.cnf файл съдържа "innodb_file_per_table", .ibd файлът ще присъства в директорията db, но все още се нуждаете от ib* файловете.