【MySQL】バックアップの作成(mysqldump)
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 データベース > ファイルパス
サンプル
$ mysqldump --single-transaction -u root -p mydb > mydb.dump
全てのデータベースのバックアップを作成するにはデータベースに-x --all-databases
を記述します。
$ mysqldump --single-transaction -u root -p -x --all-databases > mydb.dump
復元
バックアップからのデータ復元は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)
バックアップファイルから復元します。
$ mysql -u root -p mydb < mydb.dump
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)