mysqldumpと復元
何回やってもその都度忘れるのでメモ。
mysqldump db_name > dump.sql
mysql db_name < dump.sql
そしてこのエラーも毎回悩む。
ERROR 1005 at line 23: Can’t create table ‘./masters/answers.frm’ (errno: 150)
mysqldumpでは、innoDBで外部制約を使っていたとしても、それを考慮したSQL文とはなっていない(子テーブルの記述が親テーブルより先にくることがある)。結果として上記のようなエラーになる。
これを回避するには、リストアする前のSQLファイルに以下の1行を加えておく。
SET FOREIGN_KEY_CHECKS=0;
覚えられない。若い頃は「調べればわかるものは覚えない」というポリシーだったが、何度か使うと覚えていた。しかし最近はポリシーこそ変わらないけれど、一向に覚えられない。
老いた。