진짜 개발자
본문 바로가기

Linux/CentOS

CentOS7 - Mysql CSV 파일 불러오기

728x90

Mysql CSV 파일 불러오기



csv 파일이란

csv 파일은 "," 로 구분된 데이터가 입력된 파일을 말한다

텍스트 파일에 "," 구분하여 데이터를 입력해도 되고

엑셀에 작성하여 csv파일을 만들 수 도 있다



준비

1. csv 파일

- geoplaces2.csv 라는 파일을 준비했다 내용은 아래 그림과 같다



2. mysql 서버

1. database를 생성한다


2. table을 생성한다

- 테이블 생성시 csv 파일의 내용에 placeID, name이란 컬럼이 존재하므로  고려하여 작성해야 한다 



설정 및 csv 파일 옮기기

1. 파일 옮기기

- 보안상의 이유로 지정된 위치에 있는 파일에만 읽고 쓰기가 가능하도록 되어있다 때문에 

   csv 파일을 지정된 위치에 옮겨야 한다지정위치를 확인하는 방법은 아래의 명령어를 입력하면 된다


1) priv 파일 위치 확인

mysql > show variables like "secure_file_priv";


2) /var/lib/mysql-files/ 하위에 csv파일을 위치 시킨다

 



2. 파일을 이용해 DB정보 로드

1) DB를 지정한다


2) csv 파일을 이용하여 테이블에 데이터를 로드

mysql > LOAD DATA LOCAL INFILE '/var/lib/mysql-files/geoplaces2.csv' 

           INTO TABLE Place

           FIELDS TERMINATED BY ',' 

           IGNORE 1 ROWS;

LOCAL INFILE : 로컬 영역의 '/var/lib/mysql-files/' 디렉토리 하위의 geoplcaes2.csv 파일을 지정

INTO TABLE Place : Place 테이블에 로드

FIELDS TERMINATED BY ',' : 각 컬럼을 구분하기위한 구분자로 ',' 를 사용

IGNORE 1 ROWS : 1번째 줄에 DB의 스키마가 입력되어 있는 경우 첫번째줄을 무시해주어야 데이터만이 입력된다.

* Error

 The MysSQL server is running with the --secure-file-priv option so it ~

- 지정된 곳에 파일이 위치하지 않은 경우의 오류



 입력데이터 깨짐 현상

- LF, CRLF 때문에 발생하는 현상이다

  vi 편집시 문서 하단에 DOS라고 나타난다면 window에서 생성한 파일이므로 형식을 바꾸어 다시 한다.