ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【MySQL】mysqldump のオプションをまとめてみました

たまに使う 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}}