【MySQL】バックアップの作成(mysqldump)
MySQLのバックアップについて解説します。
検証環境
バックアップ
MySQLはバックアップによってデータベースの状態をファイルに保存することができます。
バックアップファイルはデータベースの復元ができるため、システムやアプリ等の障害時の備えとして重要です。
次のデータベースを元にバックアップについて確認していきましょう。
mysql> SELECT * FROM mydb.items;
+----+-----------+-------+-------+
| id | name | price | stock |
+----+-----------+-------+-------+
| 1 | Apple | 200 | 10 |
| 2 | Orange | 150 | 3 |
| 3 | Pineapple | 1100 | 1 |
| 4 | Grapes | 3500 | 1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)
作成
バックアップファイルの作成はmysqldump
コマンドを使用します。
基本構文
$ mysqldump --single-transaction -u ユーザー -p データベース > ファイルパス
サンプル
___ih_hl_start
$ mysqldump --single-transaction -u root -p mydb > mydb.dump
___ih_hl_end
$ ls
mydb.dump
全データベースのバックアップを作成するにはデータベースを指定せずに-x --all-databases
オプションを記述します。
___ih_hl_start
$ mysqldump --single-transaction -u root -p -x --all-databases > mydb.dump
___ih_hl_end
復元
バックアップファイルからデータベースを復元するにはmysql
コマンドを使用します。
基本構文
$ mysql -u ユーザー -p データベース < ファイルパス
サンプル
動作を確認するため、items
テーブルを削除しておきます。
mysql> USE mydb;
Database changed
mysql> DROP TABLE items;
Query OK, 0 rows affected (0.02 sec)
mysql> SHOW TABLES;
Empty set (0.00 sec)
バックアップファイルから復元します。
___ih_hl_start
$ mysql -u root -p mydb < mydb.dump
___ih_hl_end
Enter password:
データベースを確認するとデータが復元されています。
mysql> use mydb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SHOW TABLES;
+----------------+
| Tables_in_mydb |
+----------------+
| items |
+----------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM items;
+----+-----------+-------+-------+
| id | name | price | stock |
+----+-----------+-------+-------+
| 1 | Apple | 200 | 10 |
| 2 | Orange | 150 | 3 |
| 3 | Pineapple | 1100 | 1 |
| 4 | Grapes | 3500 | 1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)