본문 바로가기
프로그래밍/데이터베이스

mysqldump를 사용하여 MySQL(MariaDB)백업하기

by pentode 2018. 4. 20.

MySQL 또는 MariaDB를 백업하는 간단한 방법인 mysqldump 프로그램을 사용하는 방법은 알아봅니다. sqlyog와 같은 GUI 툴을 사용해서 하는게 간편하지만 명령행 툴을 사용할 수밖에 없는 경우도 있습니다. 알아둬서 나쁠건 없겠습니다.


1. 전체 데이터베이스 백업


C:\>mysqldump -uroot -p비밀번호 --all-databases > D:\backup\all_db.sql
or
C:\>mysqldump -uroot -p비밀번호 -A > D:\backup\all_db.sql


모든 데이터베이스의 생성 스크립트 및 데이터가  D:\backup\all_db.sql 파일로 생성됩니다.



2. 데이터베이스 지정하여 백업하기


C:\>mysqldump -u아이디  -p비밀번호 dbname > D:\>backup\dbname.sql



데이터베이스 이름이 dbname인 데이터베이스의 생성 스크립트와 데이터가 dbname.sql 파일로 만들어 집니다.



3. 생성 스크립트만 백업하기


C:\>mysqldump -u아이디  -p비밀번호 --no-data dbname > D:\>backup\dbname.sql
or
C:\>mysqldump -u아이디  -p비밀번호 -d dbname > D:\>backup\dbname.sql


inert 문을 제외하고 생성 스크립트만 백업됩니다.



4. 캐릭터셋을 변경하여 백업하기


C:\>mysqldump -u아이디  -p비밀번호 --default-character-set=euckr dbname > D:\>backup\dbname.sql


캐릭터셋이 utf8인 데이터베이스를 euckr 로 백업하려면 --default-character-set 옵션을 사용합니다. MySQL에서 캐릭터셋의 이름을 버전 4.0에서 4.1로 바뀔때 euc-kr 에서 euckr 로 바꼈습니다. utf-8도 utf8로 사용되어 집니다.



5. 특정 테이블만 백업하기


C:\>mysqldump -u아이디  -p비밀번호 dbname t1 t2 > D:\>backup\table.sql


t1, t2로 나열된 테이블만 백업 합니다.



6. 특정 테이블만 제외하고 백업하기


C:\>mysqldump -u아이디  -p비밀번호 dbname --ignore-table=dbname.t1 --ignore-table=dbname.t2 > D:\>backup\table.sql


--ignore-table=database.table 로 나열된 테이블을 제외하고 백업합니다.



7. 다른 데이터베이스에 호환되게 백업하기


C:\>C:\>mysqldump -u아이디 -p비밀번호 dbname --compatible=mysql40 > dbname.sql


--compatible 옵션은 mysql 4.1 버전부터 사용할 수 있습니다. 위의 명령을 이전버전인 4.0 버전으로 다운그레이드할 때 사용할 수 있는 옵션입니다. 실행해본 결과 auto_increment 속성이 없어져 버리므로 나중에 스크립트파일에 직접 추가해야 합니다.


그외 사용할 수 있는 옵션은 다음과 같습니다.


ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_table_options, no_field_options


지금까지 mysqldump 명령을 사용해서 백업하는 방법을 알아보았습니다.

반응형