ダンプデータからデータを復元したら
なぜかInnoDBからMyISAMになってたりすることがあった場合、打ちひしがれながら以下のSQLで
全テーブルのInnoDBへの変更のSQLを作成します。
SELECT CONCAT("ALTER TABLE ", information_schema.`TABLES`.TABLE_SCHEMA, "." ,information_schema.`TABLES`.TABLE_NAME , " ENGINE InnoDB;") AS "SQL" FROM information_schema.`TABLES` WHERE information_schema.`TABLES`.`ENGINE` = "MyISAM" AND information_schema.`TABLES`.TABLE_SCHEMA != "mysql" AND information_schema.`TABLES`.TABLE_SCHEMA != "information_schema"
ちなみにダンプデータから復旧したときにMyISAMになってしまうケースとしては、
「/etc/my.cnf」の「innodb_log_file_size」を変更してmysqlを再起動すると、
ログのサイズが合っていないと警告が出てinnodbが使用できなくなり、
その状態でダンプから復旧するとこうなります。