다른 이기종 간의 SQL전달할때 역시 사용된다.
그리고 MySQL의 버전간 이동에도 유용하게 사용된다.
만약 단순히 백업 용도로 사용하기를 원한다면 mysqldump보다는 mysqlhotcopy가
보다 빠른 백업과 복원을 해준다 .
물론 백업 데이터를 어떻게 사용하느나에 따라 mysqldump가 보다 더유용하게 사용되기도하지만
이는 백업 사용 방법에따라 직접 결정해야한다.
1. mysqldump의 사용법에 대해 알아보자.
사용방법은 간단하다 .
mysqldump u<사용자 계정명> -p[사용자패스워드] [option] dbname [tablename]
위와 같이 사용하며 mysqldump에서 사용되는 옵션에 대해 알아보자
--skip-extended-insert
해당옵션은 MySQL덤프를 뜨는경우 VALUES뒤에 여러 개의 데어터셋이 붙어있는 다중열 신텍스 형태로
덤프 뜨지않아 구문어서 해당라인을 찾기가 용의
--allow-keywords
MySQL예약어와 동일한 필드명이 있을경우 복원시에 에러가 발생시
이옵션을 이용하여 덤프를 받으면 테이블명와 필드명에 ``해당 기호가 삽입되어 정상적으로 인식
--complet-insert -c
완전한 인서트문을 구성한다 .
ex) insert into table_name(field1,field2) values(value1,value2)
--no-data
덤프시 데이터를 구성하지 말라는 옵션이다 .
이는 스키마 만 덤프를 받아 개발이나 구성서시 주로이용
--no-create-db
테이블 생성 쿼리를 구성하지 말라는 옵선
--quick, -q
대용량 데이타베이스를 덤프뜰때 유용
한번에 한열씩 축출하며 쓰기전에 메로리에 버퍼링을 하록 하는옵션
--xml -x
XML형태로 덤프 받을시 이용
--default-chareter-set
덤프받을시 지정하는게릭터셋으로 연결하여 덤프 받는 옵션
하지만 테이블의 언어셋을 변경하여 받아주지는않음.
실제 mysqldump의 옵션은 많지만 주로사용하는것만 기술하였다.
2. 간단한 사용법에 대해 알아보자
분명히 euc_kr 데이터가 쌓여있는데 덤프를 받으면 깨지는경우
- 이는 MySQL 서버가 다른언어셋으로 구성되어 있어 이중으로 인코딩되어
한글이나 다른언어들이 깨지는 현상이 발생한다 .
이경우는 다음고 같이 덤프 받는다.
mysqldump --default-chareter-set=euckr -u user -p dbname > dbname.sql
버전이 달라 mysql디비가 인서트가안될경우
- 메이져 버전이 다를경우 MySQL데이터베이스안의 user,db,hot등의 테이블 구조가 달라
일반적으로 덤프를든경우 정상적으로 인서트되니않는다.
이경우는 다음고 같이 덤프 받는다.
mysqldump --complet-insert -u user -p dbname > dbname.sql
예약어와 동일한 필드명 때문에 인서트가안될경우
- 필드명으로 인식하기전에 예약어로 인식하여 에러를 발생시킨다.
이경우는 다음고 같이 덤프 받는다.
mysqldump --allow-keywords -u user -p dbname > dbname.sql
보통 덤프를 받을때
mysqldump --allow-keywords --default-chareter-set=euckr --skip-opt -u user -p dbname > dbname.sql
위와 같은 형테로 받는다면 큰무리없이 복원이 가능할것이다.
Posted by 홍반장