본문 바로가기

ETC

[mysql] DB 백업(dump)을 위한 mysqldump사용법

반응형

mysql DB 내용을 임시적으로 백업하기 위해서는 아래와 같은 방법으로 진행할 수 있다.

 

 


mysql DB 모든 내용 덤프하기

$ mysqldump -u 유저명 -p DB명 > 아웃풋.sql

 

위와 같이 DB를 dump하게되면 DB table 생성 정보(Create 명령어)와 table 내 정보(Insert 명령어)가 모두 아웃풋.sql에 저장된다. 그래서 해당 파일을 그대로 DB에 임포트하게 되면 DB의 내용을 그대로 복사할 수 있다.

 

$ mysql -u 유저명 -p DB명 < 아웃풋.sql

 

 

mysql DB 테이블 내용만 덤프하기(컬럼명 없이)

$ mysqldump -u 유저명 -p DB명 --no-create-info > 아웃풋.sql

 

하지만 테이블의 생성 정보 없이 내용만 저장하고 싶을 수 있다. 그떄는 아래와 같이 --no-create-info 옵션을 추가적으로 주면 된다.

 

위 명령어는 

INSERT INTO 테이블명 VALUES ( 값 리스트 ) 와 같은 형식으로 데이터가 있다.

 

만약 테이블의 컬럼명까지 같이 쌍으로 출력하고 싶다면 아래와 같이 옵션을 추가한다.

 

 

mysql DB 테이블 내용만 덤프하기(컬럼명과 함께)

$ mysqldump -u 유저명 -p DB명 --no-create-info --complete-insert > 아웃풋.sql

 

--complete-insert 문은 insert시 아래와 같은 형식으로 덤프를 만들어 주기 떄문에 좀 더 안전하다.

 

INSERT INTO 테이블명 (컬럼 리스트) VALUES (컬럼 리스트에 매칭 되는 값 리스트)

 

 

 

mysql DB 특정 테이블 내용만 덤프하기(컬럼명과 함께)

$ mysqldump -u 유저명 -p DB명 테이블명 --no-create-info --complete-insert > 아웃풋.sql

 

만약 모든 내용을 덤프하고 싶다면, --no-create-info 옵션과 --complete-instert 옵션 없이 수행하면된다. 

 

 

 

mysql DB 특정 테이블 여러개 선정해서 내용만 덤프하기(컬럼명과 함께)

$ mysqldump -u 유저명 -p DB명 테이블명1 테이블명2 테이블명3 --no-create-info --complete-insert > 아웃풋.sql

만약 모든 내용을 덤프하고 싶다면, --no-create-info 옵션과 --complete-instert 옵션 없이 수행하면된다. 

 

반응형