티스토리 뷰
MySQL 백업과 복구
MYSQL 백업과 복구
? mysqldump
mysqldump [옵션] db_name [table_name] > backup_filename
mysqldump [옵션] --databases [옵션] db_name1, db_name2, .... > backup_filename
mysqldump [옵션] --all-databases [옵션] > backup_filename
[옵션]
-A, --all-databases : 모든 DB를 덤프
--add-locks : 덤프 전에 lock 덤프 후에 unlock
--add-drop-table : 덤프 이후에 출력물의 앞에 drop table 명령 추가 (복구 위해)
-B, --databases : 여러 DB를 동시에 덤프할 때 사용
-f, --force : 에러를 무시
-h, --host : 지정한 호스트의 데이터를 덤프
-t : data만 덤프
-d : 데이터를 제외하고 스키마만 덤프
-p : 사용자의 암호를 지정
-P : 포트번호 지정
-u : 사용자명 지정
? Data만을 백업
: LOAD DATA INFILE에서 사용한 파일의 경우 Data만 포함하는 것처럼 select 명령을 이용해서 Data만 포함된 형식으로 백업
[문법]
- SELECT column_name, output_type
INTO OUTFILE '경로 및 파일명‘
[FIELDS TERMINATED BY '종단문자‘]
FROM table_name
WHERE 조건구문 ;
ex) student table의 내용을 각 컬럼을 | 로 구분해서 성이 마씨인 학생만 ‘/root/student.dat'로 저장
mysql> select *
-> into outfile '/root/student.dat'
-> fields terminated by '|'
-> from student
-> where sname like '마%';
Query OK, 3 rows affected (0.00 sec)
[root@linux /root]# cat student.dat
012312|마량|남|3|물리|3.50
013213|마초|남|2|화학|2.42
013111|마대|남|1|생물|1.23
※ [= 외부 명령어]
# mysql -p -e "select * from school.student where sname like '마%';"
? 복구
: 백업된 내용의 복구는 mysql 명령어나 mysqladmin 명령어를 사용함
ex) root의 password가 12345인 상태에서 database1을 백업한 data.db라는 백업파일을 복구
$ mysqladmin -u root -p12345 drop database1 // database1 삭제
$ mysqladmin -u root -p12345 create database1 // database1 생성
$ mysql -u root -p12345 database1 < data.db // data.db파일로 database1 복구
======================================================================================
백업파일을 생성할 위치로 이동한다.
MySQL 백업
mysqldump -u사용자명 -p패스워드 DB명 > 생성할 파일
예) 현재 사용하는 방식
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/usr/local/mysql/bin/mysqldump -uroot -p패스워드 system > backup.sql ----> formtec 백업방식 mysqldump -uuser -ppw works > works.sql // 디비백업
/usr/local/mysql/bin/mysqldump -uroot -p패스워드 system > backup.sql ----> formtec 백업방식 mysqldump -uuser -ppw works faq > works.sql // 테이블 백업
우편번호 txt 파일 가져와서 입력시
LOAD DATA local INFILE './Busan/1.txt' INTO TABLE new_zipcode_20131203 FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' ;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
가끔 한글이 깨져서 나올 때가 있다.
이럴 때는 character set 을 지정하여 백업파일을 만들면 된다.
예)
/usr/local/mysql/bin/mysqldump -uroot -p패스워드 system --default-character-set latin1 > backup.sql;
그럼 DB의 character set 은 어떻게 알까?
MySQL에 접속하신 다음 status 치면 된다.
...
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
...
복구할때는
예)
mysqladmin -u root -p패스워드 create database명
mysql -u root -p패스워드 database명 < backup.sql
database 명을 지정하지 않고 전체를 다할 경우,,
-- 전체 백업
/usr/local/mysql/bin/mysqldump -u아이디 -p패스워드 --all-database > backup.sql
-- 전체 복원
/usr/local/mysql/bin/mysql -u아이디 -p패스워드 < backup.sql
==================================================================================
MySQL DUMP 백업 및 복원
백업/복구 모두 cmd모드에서 할것.
====백업====
1.cmd접속
-권한이 있는 계정으로 dump할것 .(보통 root계정)
2.명령어
-p[비밀번호]는 한칸 띄우지 말고 붙여서 할것.
3.저장위치를 파일명 앞에 적지않으면 현재 위치해 있는 폴더에 백업한다.
====복구====
1. Mysql 5.0 계정생성, 디비생성 참조.
-계정 및 계정에 권한을 주고 db까지 셋팅.
2.cmd접속
-권한이 있는 계정으로 dump할것 .(보통 root계정)
2.명령어(밑에)
-u[아이디] -p[비밀번호]는 한칸 띄우지 말고 붙여서 할것.
명령어
== 백업 ==
DB전체 덤프
mysqldump -u[아이디] -p[비밀번호] --all-databases > [저장될 파일명]
DB만 덤프
mysqldump -u[아이디] -p[비밀번호] [디비명] > [저장될 파일명]
테이블 구조만
mysqldump -u[아이디] -p[비밀번호] --no-data [디비명] [테이블명] > [저장될 파일명]
테이블구조를 제외한 데이터만 덤프
mysqldump -u[아이디] -p[비밀번호] --no-create [디비명] [테이블명] > [저장될 파일명]
==복구 ==
덤프파일을 이용한 복구
mysql -u[아이디] -p[암호][디비명] < [파일명]
패스워드 동시 입력시 복구 안되면
mysql -u[아이디] -p[공백][디비명] < [파일명]
'DEVELOPE > MYSQL&MARIADB' 카테고리의 다른 글
can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2) 해결방법 (0) | 2017.04.05 |
---|---|
mysql에서 root로 접속불가 문제 해결방법 (0) | 2017.02.09 |
MYSQL 조인의 종류 (0) | 2017.02.06 |
mysql 프로시저 (0) | 2017.02.01 |
MySQL MyISAM과 InnoDB 엔진 활용 (0) | 2017.02.01 |
- Total
- Today
- Yesterday
- Q6600
- crontab
- 트위터 url 공유
- 트위터 공유방법 및 소스
- SQL 함수
- 우분투
- mysql 백업
- 리눅스 명령어
- 부트스트랩
- 우분투 다운로드
- 트위터 공유소스
- 카카오스토리 sns 공유
- 트위터 sns 공유
- MYSQL 명령어
- 미디어쿼리
- centos 7
- mariadb 백업
- APM 설치
- SQL 정렬
- MySQL
- 에디트플러스
- CentOS
- 반응형 웹
- 페이스북 공유소스
- yum
- ubuntu
- 우분투 usb 설치
- 카카오스토리 url 공유
- 카카오스토리 공유소스
- CentOS 설치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |