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.