DB,  MySQL

MySQL – mysql 백업, 복원 관련 정리

mysql 백업

  • MYSQL DB 백업하기
mysqldump -u [사용자 계정] -p [패스워드] [원본 데이터베이스명] > [생성할 백업 DB명].sql
  • 원격서버의 MYSQL DB 백업하기
mysqldump -u [사용자 계정] -p -h [IP주소] -P [포트번호] [데이터베이스명] > [생성할 백업 DB명].sql
  • MYSQL Table 백업하기
mysqldump -u [사용자 계정] -p [패스워드] [데이터베이스명] [원본 백업받을 테이블명] > [백업받을 테이블명].sql
  • mysqldump 옵션
옵션 설명
–single-transaction dump를 하나의 트랜잭션을 이용해서 실행함
–no-create-info 덤프 파일의 내용에 “CREATE TABLE …” 명령을 포함하지 않도록 한다.
-w, –where 조건에 맞는 레코드만 덤프. quote 필수
–no-data 데이터는 덤프하지 않고 테이블의 구조만 덤프하도록 한다.
–flush-logs dump를 시작하는 시점에 binary log를 rotation 시키도록 한다.
–ignore-table 여러 개의 테이블을 제외할 경우 테이블명마다 앞에 –ignore-table 옵션을 주어야 함.
–all-databases 이 옵션을 명시하면 현재 서버의 모든 데이터베이스를 덤프하게 된다.
–databases [database1] [database2] 이 옵션을 명시하면 현재 서버에서 명시된 데이터베이스들을 덤프하게 된다.

mysql 복원

  • MYSQL DB 복원하기
mysql -u [사용자 계정] -p [패스워드] [복원할 DB] < [백업된 DB].sql
  • MYSQL Table 복원하기
mysql -u [사용자 계정] -p [패스워드] [복원할 DB ] < [백업된 테이블].sql

테이블 복제

  • 테이블 구조 복제
CREATE TABLE t_user_temp LIKE t_user;
  • 테이블 데이터 복제
INSERT t_user_temp SELECT * FROM t_user;

데이터 내보내기/가져오기

  • 외부 문서를 통해 데이터 가져오기
LOAD DATA INFILE '/home/manager/tmp/example.csv'
INTO TABLE temp_user
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(t_user_idx,
used_time,
used_cnt);
  • 외부 문서를 통해 데이터 내보내기
SELECT * FROM temp_purchase tp WHERE tp.`day` >= '2021-06-04' AND tp.`day` <= '2021-06-15'
INTO OUTFILE '/home/manager/tmp/example.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.