Linux/SQL

[DBMS] 데이터베이스 백업

GGkeeper 2021. 11. 28. 06:43

mysqldump : DB를 백업하는 명령어
-h, -u, -p 가 생략되면 $HOME/.my.cnf 를 참고한다.

# mysqldump test member > member.sql
# mysql test
MariaDB [test]> select * from member;
+----+-------+----------+------------+------+---------------------+
| no | id    | pass     | name       | age  | reg_date            |
+----+-------+----------+------------+------+---------------------+
|  1 | test  | qwer1234 | 테스터     |   25 | 2021-11-22 21:45:32 |
|  2 | test2 | 1234qwer | 테스터2    | NULL | 2021-11-22 21:48:06 |
|  3 | test3 | 1q2w3e4r | 테스터3    |   31 | 2021-11-23 16:48:43 |
+----+-------+----------+------------+------+---------------------+
3 rows in set (0.00 sec)

where 절을 쓰지 않았을 때의 문제점(모든 데이터가 삭제된다!!!)
MariaDB [test]> delete from member;
Query OK, 3 rows affected (0.02 sec)

MariaDB [test]> select * from member;

Empty set (0.00 sec)

MariaDB [test]> exit

백업 받은 member.sql을 test 데이터베이스에 복구한다.
# mysql test < member.sql
# mysql test
MariaDB [test]> select * from member;
+----+-------+----------+------------+------+---------------------+
| no | id    | pass     | name       | age  | reg_date            |
+----+-------+----------+------------+------+---------------------+
|  1 | test  | qwer1234 | 테스터      |   25 | 2021-11-22 21:45:32 |
|  2 | test2 | 1234qwer | 테스터2     | NULL | 2021-11-22 21:48:06 |
|  3 | test3 | 1q2w3e4r | 테스터3     |   31 | 2021-11-23 16:48:43 |
+----+-------+----------+------------+------+---------------------+
3 rows in set (0.00 sec)