# 특정 호스트 및 포트 지정
mysqldump -h HOST -P PORT -u USER -p > /dumpfile.sql
# 캐릭터 셋 지정 (기본 값 : my.cnf에 정의한 캐릭터 셋)
mysqldump -u USER -p --default-character-set=cp932 > /dumpfile.sql
# binary
mysqldump -u USER -p --default-character-set=binary > /dumpfile.sql
# 전체 데이터베이스 (-A)
mysqldump -u USER -p --all-databases > /dumpfile.sql
# 특정 스키마 (-B)
mysqldump -u USER -p --databases SCHEMA_NAME1 SCHEMA_NAME2 > /dumpfile.sql
# 테이블 락 O (-l)
mysqldump -u USER -p --lock-tables > /dumpfile.sql
# 전체 테이블 락 O (-x)
mysqldump -u USER -p --lock-all-tables > /dumpfile.sql
# 테이블 락 X (트랜잭션 테이블만 적용, MyISAM과 HEAP은 해당되지 않음)
mysqldump -u USER -p --single-transaction > /dumpfile.sql
# 임포트가 끝난 후 인덱스 활성화 (-K) (MyISAM만 가능)
mysqldump -u USER -p --disable-keys > /dumpfile.sql
# 다중 행 Insert 사용 (-e)
mysqldump -u USER -p --extended-insert > /dumpfile.sql
# 마스터 포지션 기록 (--single-transaction 옵션과 같이 쓰지 않으면 전체 테이블 락이 발생)
mysqldump -u USER -p --master-data > /dumpfile.sql
# 커밋을 테이블 단위로 하게 함
mysqldump -u USER -p --no-autocommit > /dumpfile.sql
# 통신용 버퍼 크기 지정 (최대 값 : 1GB) (my.cnf와 동일해야 함)
mysqldump -u USER -p --max_allowed_packet=1G > /dumpfile.sql
# 통신용 버퍼의 초기화 크기 지정 (max_allowed_packet 값보다 작아야 함)
mysqldump -u USER -p --net_buffer_length=512M > /dumpfile.sql
# 트리거 미포함
mysqldump -u USER -p --skip-triggers > /dumpfile.sql
# 트리거 포함
mysqldump -u USER -p --triggers > /dumpfile.sql
# 함수, 프로시저 미포함
mysqldump -u USER -p --skip-routines > /dumpfile.sql
# 함수, 프로시저 포함 (-R)
mysqldump -u USER -p --routines > /dumpfile.sql
# TIMESTAMP 데이터를 그대로 적용
mysqldump -u USER -p --tz-utc > /dumpfile.sql
# 조건에 맞는 데이터 (-w'')
mysqldump -u USER -p --where='column_name < 100' > /dumpfile.sql
# 데이터를 메모리에 로딩하지 않고 직접 읽게 함 (-q)
mysqldump -u USER -p --quick > /dumpfile.sql
# 임포트 성능 향상을 위해 LOCK 구문 삽입
mysqldump -u USER -p --add-locks > /dumpfile.sql
# CREATE TABLE 전에 DROP TABLE 구문 삽입
mysqldump -u USER -p --add-drop-table > /dumpfile.sql
# 해당 옵션은 --quick, --add-drop-table, --add-locks, --extended-insert, --lock-tables과 같음
mysqldump -u USER -p --opt > /dumpfile.sql
# Slave에서 덤프를 할 경우 (데이터는 Slave이지만 스냅샷 정보는 Master에서 가져오게 됨)
mysqldump -u USER -p --dump-slave > /dumpfile.sql
# --dump-slave 옵션인 경우 마스터 정보를 같이 포함
mysqldump -u USER -p --dump-slave --include-master-host-port > /dumpfile.sql
# BLOB 타입
mysqldump -u USER -p --hex-blob > /dumpfile.sql
# GTID 정보를 제어 여부
# OFF : SET @@ SESSION.SQL_LOG_BIN = 0; 해당 쿼리문이 추가되지 않음
# ON : SET @@ SESSION.SQL_LOG_BIN = 0; 해당 쿼리문이 추가됨
# AUTO : SET @@ SESSION.SQL_LOG_BIN = 0; 덤프하려는 데이터베이스의 설정에 따라감
mysqldump -u USER -p --set-gtid-purged=OFF > /dumpfile.sql
mysqldump -u USER -p --set-gtid-purged=ON > /dumpfile.sql
mysqldump -u USER -p --set-gtid-purged=AUTO > /dumpfile.sql