MySQLのデータをバックアップする(mysqldump)

MySQLには、テーブルの定義やデータを追加するためのSQL文を出力するための mysqldumpが用意されています。

すべてのデータベースをバックアップするには、次のように指定します。

$ mysqldump -A -u root -p パスワード --opt > ダンプファイル名

指定してあるオプションの意味は、次のようになります。

-a
全てのデータベースを対象にします。
-opt
クエリをバッファせず、stdou に直接ダンプする。
drop table を追加する。
各テーブルダンプの前に LOCK TABLES を追加し、後に UNLOCK TABLE を追加する。
複数行 INSERT 構文を使用する。
ダンプを開始する前にすべてのテーブルをロックする。

特定のデータベースをバックアップする場合、次のように指定します。

$ mysqldump データベース名 -u root -p パスワード --opt > ダンプファイル名

テーブル名およびカラム名を '`' 文字で囲む必要がある場合、-Qオプションを指定します。 MSDOSの場合、改行コードが\n\rに変換されるのを防ぐための-rオプションもあります。

全てのデータベースをバックアップした場合のリストアは、次のようにします。

$ mysql -u root -p パスワード < ダンプファイル名

特定のデータベースをバックアップした場合のリストアは、次のようにします。

$mysql -u root -p パスワード データベース名 < ダンプファイル名