mysqldump는 MySQL 데이터베이스를 백업하고 복원하는 데 널리 사용되는 명령어입니다. 기존의 백업 명령어에 대한 설명을 확장하여 추가적인 옵션과 사용 예시를 제공하겠습니다.
기본 백업 명령어
mysqldump -u [사용자명] -p[비밀번호] [데이터베이스명] > backup.sql
- -u [사용자명]: MySQL 사용자명을 지정합니다.
- -p[비밀번호]: MySQL 사용자 비밀번호를 지정합니다. 비밀번호와 -p 사이에 공백이 없어야 합니다.
- [데이터베이스명]: 백업하려는 데이터베이스의 이름을 지정합니다.
- backup.sql: 백업 파일의 이름을 지정합니다.
원격 서버의 데이터베이스 백업
원격 서버의 데이터베이스를 백업하려면 -h 옵션을 사용하여 호스트를 지정합니다.
mysqldump -h [호스트주소] -u [사용자명] -p[비밀번호] [데이터베이스명] > backup.sql
- -h [호스트주소]: 원격 서버의 IP 주소나 도메인명을 지정합니다.
포트 지정 및 원격 백업
MySQL 서버가 기본 포트(3306)가 아닌 다른 포트를 사용할 경우 -P 옵션으로 포트를 지정할 수 있습니다.
mysqldump -h [호스트주소] -P [포트번호] -u [사용자명] -p[비밀번호] [데이터베이스명] > backup.sql
- -P [포트번호]: MySQL 서버의 포트 번호를 지정합니다.
특정 테이블만 백업하기
하나의 데이터베이스에서 특정 테이블만 백업하려면 테이블 이름을 명시합니다.
mysqldump -u [사용자명] -p[비밀번호] [데이터베이스명] [테이블명1] [테이블명2] > backup_tables.sql
모든 데이터베이스 백업하기
MySQL 서버의 모든 데이터베이스를 백업하려면 --all-databases 옵션을 사용합니다.
mysqldump -u [사용자명] -p[비밀번호] --all-databases > all_databases_backup.sql
백업 시 트리거, 이벤트, 저장 프로시저 포함하기
백업 시 트리거, 이벤트, 저장 프로시저 등을 포함하려면 다음과 같은 옵션을 사용할 수 있습니다.
mysqldump -u [사용자명] -p[비밀번호] --routines --triggers --events [데이터베이스명] > full_backup.sql
- --routines: 저장 프로시저와 함수를 포함합니다.
- --triggers: 트리거를 포함합니다.
- --events: 이벤트를 포함합니다.
백업 파일 압축하기
백업 파일의 크기를 줄이기 위해 gzip을 사용하여 압축할 수 있습니다.
mysqldump -u [사용자명] -p[비밀번호] [데이터베이스명] | gzip > backup.sql.gz
백업 복원하기
백업한 .sql 파일을 복원하려면 mysql 명령어를 사용합니다.
mysql -u [사용자명] -p[비밀번호] [데이터베이스명] < backup.sql
압축된 백업 파일을 복원하려면 gunzip을 사용하여 압축을 해제한 후 복원합니다.
gunzip < backup.sql.gz | mysql -u [사용자명] -p[비밀번호] [데이터베이스명]
'개발 > MySQL' 카테고리의 다른 글
[MySQL] split 구현 (0) | 2017.02.20 |
---|---|
[MySQL] FK 설정 (0) | 2017.02.20 |