요즘은 PHPMyadmin 이라는 웹툴을 이용하여 많이들 작업하시는데요
간혹 이녀석이 작동을 잘못하거나 버전에 따라 내보내기가 안되는경우가 있더군요
그래서 삽질의 끝에 알아냈답니다..
콘솔에서 하는 작업이므로 반드시 쉘에서 작업해주세요
MySQL이 설치된 폴더의 'BIN' 로 이동하세요.
파일의 형태로 백업이 됩니다.
1. 백업
MySQLDump -u사용자 -p암호 DB이름 > DB백업.sql
ex) mysqldump -uroot -p1234 test_db > test_db.sql -- ('test_db' 전체 내용을 백업)
2. 테이블 백업
MySQLDump -u사용자 -p암호 DB이름 TB이름 > TB백업.sql
ex) mysqldump -uroot -p1234 test_db test_table > test_table.sql -- ('test_db' 의 'test_table' 내용을 백업)
3. 데이터 백업
MySQLDump -u사용자 -p암호 DB이름 TB이름 -w "조건" > 데이터백업.sql
ex) mysqldump -uroot -p1234 test_db test_table -w "name='홍길동' > test_table.sql
-- ('test_db' 의 'test_table' 에서 'name' 이 홍길동인 데이터만 백업)
4. 복원 (데이터 등록)
MySQL -u사용자 -p암호 DB이름 < DB백업.sql -- DB가 존재 하지 않는 경우 미리 생성 후 진행 하여야 함.
MySQL -u사용자 -p암호 DB이름 TB이름 < TB백업.sql
MySQL -u사용자 -p암호 DB이름 TB이름 < 데이터백업.sql
주의) 복원 명령 시 기존의 테이블은 제거 된 후 재생성 하여 복원 됩니다. (기존 데이터는 삭제됨)
TIP) 파일명 자동 생성 명령을 위한 명령문
ex) mysqldump -uroot -p1234 test_db > test_db_%date%.sql -- ('test_db_2013-04-02.sql' 형태로 생성됨.)
아래와 같이 "backup.bat" batch 파일을 만들면 내가 원하는 형태의 날짜및시간을 표현 할 수 있다.
----------------------------------------------------------------------------------
@echo off
SET now=%date:~0,4% -- 2013-04-02 (0번째 부터 4개)
SET now=%now%%date:~5,2% -- 2013-04-02 (5번째 부터 2개)
SET now=%now%%date:~8,2% -- 2013-04-02
SET now=%now%_%time:~0,2% -- 14:10:10.10
SET now=%now%%time:~3,2% -- 14:10:10.10
SET now=%now%%time:~6,2% -- 14:10:10.10
mysqldump -uroot -p1234 %1 > %1_%now%.sql -- %1 : 배치 파일 실행 시 포함 한 DB명
-----------------------------------------------------------------------------------
backup.bat test_db < 샐행 -- ('test_db_20130402_141010.sql' 형태로 생성됨.)
'천년열혼 > 리눅스이야기' 카테고리의 다른 글
MYSQL 5.1.x 설치 및 my.cnf 설정방법 그리고 오류대처법 (0) | 2017.01.20 |
---|---|
vsftpd 설정하기 (0) | 2013.06.11 |