I'm in an environement setup, running OSX with MariaDB 10.0.12-MariaDB Homebrew
I've screwed up the installation so I did completely removed MySQL and MariaDB from my setup and started again.
After finishing installing MariaDB, I've reimported my databases (innoDB) via a DB Dump from the production server. It worked fine.
After a reboot, the day after, I can no longer access to the databases :
Table 'my.table' doesn't exist in engine
What's causing this and what's the solution ? I do see the structure of my database, but when I try to access it, it gives me this error message.
I did try mysql-upgrade --force and deleting rm ib_logfile1 ib_logfile0
The data loss is not a problem here, the problem is that I can't spend 30 minutes on re-installing each database each time I do a reboot.
Here's some logs :
140730 9:24:13 [Note] Server socket created on IP: '127.0.0.1'.
140730 9:24:14 [Note] Event Scheduler: Loaded 0 events
140730 9:24:14 [Warning] InnoDB: Cannot open table mysql/gtid_slave_pos from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
140730 9:24:14 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1932: Table 'mysql.gtid_slave_pos' doesn't exist in engine
140730 9:24:14 [Note] /usr/local/Cellar/mariadb/10.0.12/bin/mysqld: ready for connections.
Version: '10.0.12-MariaDB' socket: '/tmp/mysql.sock' port: 3306 Homebrew
140730 16:26:28 [Warning] InnoDB: Cannot open table db/site from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
解决方案
Something has deleted your ibdata1 file where InnoDB keeps the dictionary. Definitely it's not MySQL who does it.