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와 패스워드를 입력해주면 된다.