データベース単体(テーブル単体)のバックアップ
mysqldump [OPTIONS] database [tables] > fbackup_file_name
ex) mysqldump -u root -p --opt -c db_name1 > mysql_dump.txt
ex) mysqldump -u root -p --opt -c db_name1 table_name1 table_name2 > mysql_dump.txt
db_name1の二つのテーブル(table_name1, table_name2)をバックアップ
複数データベースのバックアップ
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] > fbackup_file_name
ex) mysqldump -u root -p --opt -c --databases db_name1 db_name2 name3 name4 > mysql_dbdump.txt
全データベースのバックアップ1
mysqldump [OPTIONS] --all-databases --event [OPTIONS] > fbackup_file_name
注:パスワードも含むユーザーデータもバックアップされ、復元時も全体が復元される。
ex) mysqldump -u root -p --opt --event --all-databases > mysql_alldump.txt
全データベースのバックアップ2
mysqldump [OPTIONS] --all-databases --event --no-create-db [OPTIONS] > fbackup_file_name
注:パスワードも含むユーザーデータもバックアップされ、復元時も全体が復元される。
ただし、CREATE DATABASE 文が挿入されないのでリストアするときはdatabaseが生成されていなければならない。
ex) mysqldump -u root -p --opt --event --all-databases --no-create-db > mysql_alldump.txt
リストアでmysqlのオプションで-fオプションをつけるとエラーが出ても無視して進むので複数のdatabaseの中から特定のdatabaseのみをリストアできる。
ex)mysql -u root -p -f db3 < mysql_alldump.txt
解説:データベースdb3のみが存在している場合、mysql_alldump.txtの中にdb1からdb5がバックアップされていてもdb3のみリストアできる
よく使うOPTIONS(rhttp://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_id957)
--opt:--add-drop-table、--add-locks、-a、-e、-q、-lを指定したのと同じです。
--event:mysql.eventsテーブルをバックアップの対象とする。5.1.8以降指定しないとWarningがでる。
[-c | --complete-insert]:完全なINSERT構文を生成します。
(カラム名が記述されているINSERT構文)
[-u | --user=]:サーバに接続するユーザを指定します。
[-p | --password=]:サーバに接続するパスワードを指定します。
※オプション「--opt」で暗に指定されるオプションについて
--add-drop-table:DROP TABLE構文をCREATE TABLE構文の前に追加します。
--add-locks:INSERT構文の前後にLOCK TABLES構文とUNLOCK TABLES構文を追加します。
[-a | --all]:MySQL特有の作成オプションを含みます。
[-e | --extended-insert]:複数の値を1文に与えるINSERT構文を編集します。
[-q | --quick]:クエリをバッファしないで、直接標準出力に出力します。
[-l | --lock-tables]:読み出しの際にすべてのテーブルをロックします。
mysqldump [OPTIONS] database [tables] > fbackup_file_name
ex) mysqldump -u root -p --opt -c db_name1 > mysql_dump.txt
ex) mysqldump -u root -p --opt -c db_name1 table_name1 table_name2 > mysql_dump.txt
db_name1の二つのテーブル(table_name1, table_name2)をバックアップ
複数データベースのバックアップ
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] > fbackup_file_name
ex) mysqldump -u root -p --opt -c --databases db_name1 db_name2 name3 name4 > mysql_dbdump.txt
全データベースのバックアップ1
mysqldump [OPTIONS] --all-databases --event [OPTIONS] > fbackup_file_name
注:パスワードも含むユーザーデータもバックアップされ、復元時も全体が復元される。
ex) mysqldump -u root -p --opt --event --all-databases > mysql_alldump.txt
全データベースのバックアップ2
mysqldump [OPTIONS] --all-databases --event --no-create-db [OPTIONS] > fbackup_file_name
注:パスワードも含むユーザーデータもバックアップされ、復元時も全体が復元される。
ただし、CREATE DATABASE 文が挿入されないのでリストアするときはdatabaseが生成されていなければならない。
ex) mysqldump -u root -p --opt --event --all-databases --no-create-db > mysql_alldump.txt
リストアでmysqlのオプションで-fオプションをつけるとエラーが出ても無視して進むので複数のdatabaseの中から特定のdatabaseのみをリストアできる。
ex)mysql -u root -p -f db3 < mysql_alldump.txt
解説:データベースdb3のみが存在している場合、mysql_alldump.txtの中にdb1からdb5がバックアップされていてもdb3のみリストアできる
よく使うOPTIONS(rhttp://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_id957)
--opt:--add-drop-table、--add-locks、-a、-e、-q、-lを指定したのと同じです。
--event:mysql.eventsテーブルをバックアップの対象とする。5.1.8以降指定しないとWarningがでる。
[-c | --complete-insert]:完全なINSERT構文を生成します。
(カラム名が記述されているINSERT構文)
[-u | --user=]:サーバに接続するユーザを指定します。
[-p | --password=]:サーバに接続するパスワードを指定します。
※オプション「--opt」で暗に指定されるオプションについて
--add-drop-table:DROP TABLE構文をCREATE TABLE構文の前に追加します。
--add-locks:INSERT構文の前後にLOCK TABLES構文とUNLOCK TABLES構文を追加します。
[-a | --all]:MySQL特有の作成オプションを含みます。
[-e | --extended-insert]:複数の値を1文に与えるINSERT構文を編集します。
[-q | --quick]:クエリをバッファしないで、直接標準出力に出力します。
[-l | --lock-tables]:読み出しの際にすべてのテーブルをロックします。