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

この記事へのコメント
まだコメントは投稿されていません。