스카이코의 세상

MYSQL - dump(백업, mysqldump) 본문

IT/MYSQL

MYSQL - dump(백업, mysqldump)

스카이코 2023. 2. 5. 03:19
반응형

dump

컴퓨터 주기억장치나 레지스터 등에 기억시킨 내용을 보조기억장치 등의 매체에 복사 또는 저장하는 것을 말합니다.

mysql에서 DB의 내용을 dump하기 위해서는 mysqldump 명령어를 사용합니다.

 

mysql 데이터베이스의 모든 내용 dump

다음 명령어를 통하여 DB의 모든 내용을 내보낼 수 있습니다. DB의 테이블 생성 정보 뿐만 아니라 테이블 내의 정보(row)까지 모두 저장합니다. 즉 create table과 insert 명령어가 모두 결과파일.sql에 저장됩니다.

mysqldump -u 유저이름 -p 데이터베이스이름 > 결과파일.sql

 

이렇게 저장된 결과파일.sql은 다음 명령어를 통하여 DB에 불러올 수 있습니다.

mysql -u 유저이름 -p 데이터베이스이름 < 결과파일.sql

 

mysql의 컬럼(테이블 생성 정보)만 dump

-d 옵션을 사용하면 컬럼(테이블 생성 정보)만 dump할 수 있습니다.

mysqldump -u 유저이름 -p 데이터베이스이름 -d > 결과파일.dump

 

mysql의 로우(데이터)만 dump

--no-create-info 옵션을 추가하여 DB의 테이블 생성 정보를 제외하고 데이터(row)만 dump할 수 있습니다.

mysqldump -u 유저이름 -p 데이터베이스이름 --no-create-info > 결과파일.sql

이때 컬럼명은 함께 저장되지 않고 INSERT INTO 테이블이름 VALUES (값 리스트) 형태로 저장됩니다.

만약 컬럼명도 함께 저장하고 싶다면 --complete-insert 옵션을 추가하면 됩니다.

mysqldump -u 유저이름 -p 데이터베이스이름 --no-create-info --complete-insert > 결과파일.sql

이때는 INSERT INTO 테이블이름 (컬럼 리스트) VALUES (컬럼 리스트에 매칭되는 값 리스트) 형태로 저장됩니다.

 

 

mysql의 특정 테이블만 dump

DB이름 뒤에 테이블이름을 덧붙인다면 특정 테이블의 내용만 dump할 수 있습니다.

mysqldump -u 유저이름 -p 데이터베이스이름 테이블이름 > 결과파일.sql

이때 한번에 여러 테이블을 dump하고 싶다면 테이블이름을 추가로 덧붙여 써주면 됩니다.

mysqldump -u 유저이름 -p 데이터베이스이름 테이블이름1 테이블이름2 > 결과파일.sql

 

반응형
Comments