MySQL-데이터베이스 가져 오기-복구 방법
MySQL에는 이전에 백업 한 파일에서 MySQL 데이터베이스로 데이터를로드하는 두 가지 간단한 방법이 있습니다.
LOAD DATA로 데이터 가져 오기
MySQL은 대량 데이터 로더 역할을하는 LOAD DATA 문을 제공합니다. 다음은 파일을 읽는 명령문입니다.dump.txt 현재 디렉토리에서 테이블에로드합니다. mytbl 현재 데이터베이스에서.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
만약 LOCAL 키워드가 없으면 MySQL은 다음을 사용하여 서버 호스트에서 데이터 파일을 찾습니다. looking into absolute pathname, 파일 시스템의 루트에서 시작하여 파일의 위치를 완전히 지정합니다. MySQL은 주어진 위치에서 파일을 읽습니다.
기본적으로, LOAD DATA 데이터 파일에 줄 바꿈 (줄 바꿈)으로 끝나는 줄이 포함되어 있고 한 줄 내의 데이터 값이 탭으로 구분된다고 가정합니다.
파일 형식을 명시 적으로 지정하려면 FIELDS 라인 내의 필드 특성을 설명하는 절 및 LINES줄 끝 시퀀스를 지정하는 절. 다음과 같은LOAD DATA 문은 데이터 파일이 콜론으로 구분 된 값과 캐리지 리턴 및 줄 바꾸기 문자로 끝나는 줄을 포함하도록 지정합니다.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
LOAD DATA 명령은 데이터 파일의 열이 테이블의 열과 순서가 같다고 가정합니다. 그렇지 않은 경우 데이터 파일 열을로드해야하는 테이블 열을 나타내는 목록을 지정할 수 있습니다. 테이블에 a, b 및 c 열이 있지만 데이터 파일의 연속 열이 b, c 및 a 열에 해당한다고 가정합니다.
다음 코드 블록과 같이 파일을로드 할 수 있습니다.
mysql> LOAD DATA LOCAL INFILE 'dump.txt'
-> INTO TABLE mytbl (b, c, a);
mysqlimport로 데이터 가져 오기
MySQL에는 또한 다음과 같은 유틸리티 프로그램이 포함되어 있습니다. mysqlimport 이는 LOAD DATA 주변의 래퍼 역할을하므로 명령 줄에서 직접 입력 파일을로드 할 수 있습니다.
데이터를로드하려면 dump.txt 으로 mytbl, UNIX 프롬프트에서 다음 명령을 사용하십시오.
$ mysqlimport -u root -p --local database_name dump.txt
password *****
사용하는 경우 mysqlimport, 명령 줄 옵션은 형식 지정자를 제공합니다. 그만큼mysqlimport 앞의 두 가지에 해당하는 명령 LOAD DATA 문은 다음 코드 블록과 같습니다.
$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
--lines-terminated-by = "\r\n" database_name dump.txt
password *****
옵션을 지정하는 순서는 모두 데이터베이스 이름 앞에 와야한다는 점을 제외하면 mysqlimport에는 중요하지 않습니다.
그만큼 mysqlimport 문은 --columns 열 순서를 지정하는 옵션-
$ mysqlimport -u root -p --local --columns=b,c,a \
database_name dump.txt
password *****
따옴표 및 특수 문자 처리
FIELDS 절은 다음과 같은 다른 형식 옵션을 지정할 수 있습니다. TERMINATED BY. 기본적으로 LOAD DATA는 값이 인용되지 않은 것으로 가정하고 백 슬래시 (\)를 특수 문자의 이스케이프 문자로 해석합니다. 값 인용 문자를 명시 적으로 나타내려면ENCLOSED BY명령. MySQL은 입력 처리 중에 데이터 값 끝에서 해당 문자를 제거합니다. 기본 이스케이프 문자를 변경하려면ESCAPED BY.
ENCLOSED BY를 지정하여 따옴표 문자가 데이터 값에서 제거되어야 함을 나타내면 따옴표 문자를 두 배로 늘리거나 앞에 이스케이프 문자를 추가하여 데이터 값에 문자 그대로 포함시킬 수 있습니다.
예를 들어 따옴표 및 이스케이프 문자가 "및 \ 인 경우 입력 값 "a""b\"c" 다음과 같이 해석됩니다. a"b"c.
에 대한 mysqlimport, 따옴표 및 이스케이프 값을 지정하기위한 해당 명령 줄 옵션은 다음과 같습니다. --fields-enclosed-by 과 --fields-escaped-by.