MySQLでダンプ&リストアをコマンドで実行

Dump & Restore

MySQLでダンプファイルを作成するには、下記のコマンドを打てばOK。

# mysqldump -u root -pmypass target_database > hoge_dump_yyyyMMdd.sql


逆にリストアする時は mysql コマンドを使って、次のようにコマンドを打てば簡単にリストアできます。

# mysql -u root -pmypass target_database < hoge_dump_yyyyMMdd.sql

エラーケースの対応

Can't create table './masters/hoge.frm' 

上記のようなエラーがリストアの最中に流れてしまう場合、InnoDB形式で外部参照キーを定義しているテーブルがあり、ダンプファイルをそのまま流すとテーブル作成に失敗します。

テーブル作成順序はちゃんと守ろうってことですね。

それでも、テーブルを復元せんといかん場合は、リストア時に外部参照キーのチェックを外すことで実現できます。

ダンプファイルの先頭行に以下の記述を追加します。

SET FOREIGN_KEY_CHECKS=0;

この1行を追加することで、リストア可能です。