본문 바로가기

Data Engineering

[MySQL] mysqldump로 database 또는 table을 dump 하기

728x90
반응형

mysql에서 데이터 백업 및 데이터 이동을 위해 dump 기능을 사용해야 할 때가 있다.

GUI 프로그램에서 Export로 기능을 제공하지만, DB는 서버에 탑재되어 있는 경우가 많고(=GUI 지원 환경 X) 명령어를 직접 입력해 dump 파일을 만드는 편이 좀 더 직관적이고 좋다.

mysqldump 옵션에 따라 특정 데이터베이스, 모든 데이터베이스, 특정 테이블을 dump 파일로 만들 수 있다.

1. 특정 테이블 dump

mysqldump에서 기본적으로 첫 번째 인자는 데이터베이스를 지정하며, 두 번째 인자부터는 테이블을 지정한다.

명시적으로 --tables을 지정할 수 있으며, 해당 옵션 상관없이 똑같이 동작한다.

예시로 데이터베이스 test1에서 A, B 테이블을 추출하고 싶으면 다음 명령어처럼 실행하면 된다.

mysqldump test1 A B > {sql 파일}
mysqldump --tables test1 A B > {sql 파일}

2. 특정 데이터베이스 dump

하나 이상의 데이터베이스를 dump 하고 싶으면 --databases를 명시해줘야 한다.

예시로 ① 데이터베이스 test2만 dump 파일로 만들거나, ②  test2, test3을 dump 파일로 만들고 싶으면 다음 명령어처럼 실행하면 된다.

mysqldump test2 > {sql 파일}
mysqldump --databases test2 test3 > {sql 파일}

3. 모든 데이터베이스 dump

서버 자체를 이동 또는 백업할 필요가 있다면 모든 데이터베이스를 dump 파일로 만들어서 보관해야 된다.

mysqldump --all-databases > {sql 파일}

4. dump 파일 적용하기

dump 파일을 적용하기 위해서 어느 DB에 적용할지, sql 파일 경로가 어디에 있는지 사전에 준비할 필요가 있다.

mysql -u {id} -p [db name] < {sql 파일}
mysqldump -u {id} -p [db name] < {sql 파일}

mysql, mysqldump로 dump 파일 적용이 가능하고 id는 일반적으로 root지만, 혹시 다른 계정이 있다면 그 계정의 id와 패스워드를 입력해주면 된다.

728x90
반응형