MySQLをmysqldumpでバックアップする

mysqldumpとは?

mysqldumpはMySQLをバックアップするためのユーティリティです。
実行するとバックアップ対象のデータベースのテーブルやデータなどがダンプ(出力)されます。
ダンプされるデータはSQL文になっているので、他のデータベースへの移植も簡単に行えます。

mysqldumpのオプション

下記は主要なmysqldumpのオプションの一覧です。
※これですべてではありません。--helpオプションを指定すると詳細を確認できます。

--help ヘルプメッセージを出力して終了する
--add-locks 各テーブルダンプの前に "LOCK TABLES" を追加し、後に "UNLOCK TABLE" を追加する。
これはMySQL への挿入を速くするための処理
--add-drop-table 各作成ステートメントの前に drop table を追加する。
つまり、既存のテーブルを一旦削除し、再生成する。
-A
--all-databases
すべてのデータベースをダンプする。
-C
--compress
クライアントとサーバの両方が圧縮をサポートする場合、クライアントとサーバ間の情報をすべて圧縮する。
-B
--databases
引数として指定された(複数の)データベースをダンプする。
出力される各新規データベースの前に USE db_name; が追加される。
名前の引数はすべて、データベース名として扱われるためここでテーブル名を指定しないようにする
-f
--force,
テーブルダンプ中にSQL エラーが発生しても続行する。
--opt
--quick --add-drop-table --add-locks --extended-insert --lock-tables
MySQL サーバに読み込むための最速ダンプを提供する。
マニュアルに、
このオプションなしで実行すると、mysqldumpは結果をダンプする前に、結果セット全体をメモリにロードします。これは、大きなデータベースをダンプする際、問題になる可能性があります。
とある。基本的にはつけたほうがよさそう。
反面、
mysqldump プログラムの新しいコピーを使用している場合で、非常に古い MySQL サーバに読み込むダンプを行うときには、--opt オプションまたは -e オプションは使用しないでください。
ともある。
--default-character-set デフォルト文字コードをセットする。

バックアップ実行

前述のように、--optをつけると最速でダンプできる。(--optは--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charsetを指定したのと同じこと)

[root@centos ~] mysqldump --opt databasename > backup.sql    ※データベース"databasename"をbackup.sqlにダンプ
mysqldump: Got error: 1045: Access denied for user 'centos'@'localhost' (using password: NO) when trying to connect
[root@centos ~] mysqldump --opt databasename -p > backup.sql    ※上記のようにパスワードを入力しないと実行できない場合は-pをつける
Enter password: 
[root@centos ~] mysqldump --opt databasename -u root -p > backup.sql    ※権限が必要な場合は-rで権限のあるユーザ名を指定する
Enter password: 

最終更新 2009-12-11

この記事へのコメント

まだコメントは投稿されていません。

カテゴリー

その他



スポンサードリンク