우선 클라이언트두 mysqldump 명령을 쓸수 있게
관리자 가 /bin 밑에 mysqldump 명령을 복사 해주어야 합니다.
그래야 클라이언트 사용자두 그 명령을 사용할 수 있으니까요..

그런후 아래와 같은 옵션을 써서 디비 백업 받으면 됩니다.

형식:
$ mysqldump [OPTIONS] database [tables]

설명:
테이블이 생략되면 전체 태이블을 백업.
예제:
$ mysqldump --opt database > backup-file.sql
$ mysqldump --opt database | mysql --host=remote-host -C database
$ mysqldump --quick -c -ujhs -p jhs > jhs.out.sql
$ mysqldump --quick -c -t --add-locks -urp bizaide110 > bae110.data.sql

마지막 예제 처럼, -u, -p 가 데이터베이스 앞에와야하며,
데이터베이스는 맨 뒤에 와야한다.


도움말:
$ mysqldump --help

주의: 만약, --quick 이나 --opt 없이 덤프하면 메모리가 많이 소모되어
큰 데이터베이스의 경우 문제가 발생할 수 있다.

옵션:
--add-locks
테이블의 덤프하기전에 해당 테이블을 잠그고 덤프한 후에
테이블을 풀어준다.
-c, --complte-insert
INSERT 구문에서 필드명을 포함한 전체를 덤프
-f, --force
덤프 중 에러가 있어도 계속 진행
-h, --host
특정 호스트의 MySQL 에서 데이터 덤프
-t, --no-create-info
테이블 생성 정보는 덤프하지 않음(데이터만 덤프)
-d, --no-data
테이블 스키마만 덤프
-q, --quick
버퍼를 사용하지 않고 바로 표준출력으로 보낸다.


위의 예기는 원론적인 예기구요..
실사용예
만약 사용자가 할당 받은 디비 이름이 hahaha 라면
그 디비 안에 여러개의 table 이 있지 않습니까?
그러면 여기서는 한번에 기냥 hahaha 라는 디비 전체를 다 긁어 오는 방법을 설명 드릴게요..

#mysqldump -u님의디비아뒤 -p님의디비패스 hahaha >
hahaha_backup.sql
이렇게 해주시면 됩니다.
그러면 hahaha 디비안에 들어있는 테이블과 전체 내용이 싹 읽혀서 .sql 화일 안에 들어 갑니다.
vi hahaha_backup.sql 이렇게 해보세요..
그럼 모든게 들어가 있는것이 확인 될테니

+ Recent posts