ダンプ とろうぜ

mysqldump

を行う

データベースのバックアップのため、ダンプを取る場面が多々あるかと思います。
そのコマンドについて、「あれ?」とよく忘れてしまうことがあるので、書きます。

ダンプとは?

dump(ダンプ)とは、デバッグやデータ修復のために、ファイルやメモリの内容をディスクに出力(記録、あるいは表示)すること。
データベースにおいては、データベースの情報をファイルに書き出して保存することをdump(ダンプ)と呼ぶ。これはデータベース移行の際に利用される。

dumpは、プログラムを開発する際に動作を追跡するために利用することが多い。
dumpされたファイルには、dump作成時のメモリ上のデータが丸ごと書き出される。
従って、プログラムの開発などを行う場面では、データをdumpしてデバッガに読み込ませ、プログラムの問題を分析することで、問題の原因を発見できることがある。
(参考)http://kiyotakakubo.hatenablog.com/entry/20090131/1233420834

オプションも多数あり、組合せでさせたい操作をする。

オプション

オプション 意味 説明
-u ユーザー名(user) サーバに接続するユーザー名
-p パスワード(password) パスワードを指定してログイン
-h ホスト名(host) 接続するサーバのホスト名(ex. localhost, 127.0.0.1)
指定しないとlocalhostになる
-B データベース(dababase) 複数のデータベースを名前を指定してダンプ
-A すべてのデータベース(all) 複数のデータベースをまとめてダンプ
-d 定義のみ(no-data) 定義のみダンプを取りたいときに指定
-n データベースは無視(no-create-db) データベースを作成せずにダンプ
-t テーブルは無視(no-create-info) テーブルの作成を行わずにダンプ

 

 

dumpを取る

移行元のシェルにログインして(場合によっては、管理者ユーザーになってから)、次のコマンドでダンプファイルを作成します。

cd /var/www
KUSANAGIなら、/home/kusanagi

mysqldump -u {ユーザー} -p -h localhost {DB名} > {出力先ファイルの名前(通常は、わかりやすいように日付などをいれ、最後に.sql)}

これが、移行元でデータベースのダンプファイルを作成するコマンド!!

dumpファイルからデータを復元する場合

特定のデータベースのみの復元の場合は、以下のコマンド

mysql -u ユーザ名 -p DB名 < ダンプファイル名
例えば、
mysql -u root -p DB名 < dump.sql

mysqldumpの全てのデータベースのバックアップを復元

mysql -u root -p < dump.sql

Leave a Reply

Your email address will not be published. Required fields are marked *