データベースの設定、テーブル構成、データなど、データベースの情報をすべて丸ごとファイルにして取り出しておくと、データベースが万が一壊れた場合にも、復元することができます。
バックアップとリストア
データベース内の内容を書き出すことを、ダンプ(dump)といいます。
ダンプしたファイルを使えば、他のPCに同じ内容のデータベースを作成したり、万が一データベースが壊れた場合に、対応するバックアップとしてとっておくこともできます。
バックアップの取り方はRDBMSによって異なります。
逆に、ダンプしたデータをデータベースに戻すことを、リストアするといいます。
ダンプとリストア
MySQLでデータベースをダンプするには、コマンドプロンプトからmysqldumpコマンドを使います。
mysqldumpコマンドでは、データベースの構成とデータをSQL文として書き出します。
ダンプにより書き出された情報は、単なるSQL文からできているテキストで、そこからデータベースのすべての情報を読み取ることが可能です。
単なるテキストなので、セキュリティ上慎重に扱う必要があります。
mysqldumpコマンドを使うと、テーブル単位、データベース単位でダンプすることができます。
テーブルのダンプ
【書式】1つのテーブルをダンプする
mysqldump -u ユーザー名 -p パスワード データベース名 テーブル名 > 出力ファイル名
mysqldumpコマンドはコマンドプロンプトから実行しますので、MySQLモニタが起動している場合は、MySQLモニタを終了しておきます。
テーブルの定義とデータすべてがダンプされます。
【書式】1つのテーブルをリストアする(コマンドプロンプトからmysqlコマンドを使用する場合)
mysql -u ユーザー名 -p パスワード データベース名 < ダンプファイル名
【書式】1つのテーブルをリストアする(MySQLモニタからSOURCEコマンドを使用する場合)
USE データベース名
SOURCE ダンプファイル名
ダンプされたテーブルは1つしかなく、すでにあっても上書きされるので、テーブル名を指定する必要はありません。
【ヒント】複数のテーブルをダンプするには
mysqldump -u ユーザー名 -p パスワード データベース名 テーブル名1 テーブル名2 > 出力ファイル名
テーブル名を半角スペースを空けて、複数指定することができます。
【書式】テーブルの定義のみダンプする
mysqldump -u ユーザー名 -p パスワード -d データベース名 テーブル名 > 出力ファイル名
テーブルの定義のみダンプしたい場合は、「-d」オプションをつけます。
データベースのダンプ
次に、データベースのダンプを見ていきます。
【書式】データベースをダンプする
mysqldump -u ユーザー名 -p パスワード データベース名 > 出力ファイル名
【書式】データベースのリストア
mysql -u ユーザー名 -p パスワード < ダンプファイル名
ダンプしたファイルからデータベースを流し込むので、同名のデータベースが存在していなければなりません。
存在しなければあらかじめデータベースを作っておきます。
参考図書
LINE公式アカウント
仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】