たまに使う mysqldump ですが、オプションの指定方法が覚えられないのでここにメモします。
オプション
よく使うオプション
-u |
ユーザ名 |
サーバに接続するユーザー名 |
-p |
パスワード |
サーバに接続するパスワード |
-h |
ホスト名 |
接続するサーバのホスト名(指定無: localhost) |
-A |
すべてのデータベース |
複数データベースをまとめてダンプ |
-B |
データベース |
複数データベースの名前を指定してダンプ |
-d |
定義のみ |
定義のみダンプ |
-n |
データベース無視 |
データベースを作成せずにダンプ |
-t |
テーブル無視 |
テーブルの作成を行わずにダンプ |
たまに使うオプション
--add-drop-table |
CREATE TABLEの前にDROP TABLEを含める |
--ignore-table=[DB_NAME].[TABLE_NAME] |
指定されたテーブルをダンプしない |
コマンド(サンプル)
ダンプ
データベース
$ mysqldump -u {{USER_NAME}} -p -h {{HOST_NAME}} {{DB_NAME}} > {{DUMP_FILE_NAME}}
テーブル
$ mysqldump -u {{USER_NAME}} -p -h {{HOST_NAME}} {{DB_NAME}} {{TABLE_NAME}} > {{DUMP_FILE_NAME}}
複数データベースを指定してダンプ
データベース
$ mysqldump -u {{USER_NAME}} -p -h {{HOST_NAME}} -B {{DB_NAME1}} [{{DB_NAME2}} ...] > {{DUMP_FILE_NAME}}
定義のみダンプ
データベースとテーブル
$ mysqldump -u {{USER_NAME}} -p -h {{HOST_NAME}} -A -d > {{DUMP_FILE_NAME}}
データベース
$ mysqldump -u {{USER_NAME}} -p -h {{HOST_NAME}} -A -d -t > {{DUMP_FILE_NAME}}
データのみダンプ
データベースのデータ
$ mysqldump -u {{USER_NAME}} -p -h {{HOST_NAME}} -t {{DB_NAME}} > {{DUMP_FILE_NAME}}
リストア
$ mysql -u {{USER_NAME}} -p -h {{HOST_NAME}} {{DB_NAME}} < {{DUMP_FILE_NAME}}