未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【DB入門】データベース全体のバックアップとリストア

title


データベースの設定、テーブル構成、データなど、データベースの情報をすべて丸ごとファイルにして取り出しておくと、データベースが万が一壊れた場合にも、復元することができます。


バックアップとリストア

データベース内の内容を書き出すことを、ダンプ(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公式アカウント

仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】


LineOfficial

友だち追加



【まついのLINE公式アカウントはこちらから!】
Line公式アカウント