반응형

'load data local infile'에 해당되는 글 1건

  1. 2018.01.03 MySQL CSV 파일 임포트 익스포트 하기
반응형

MySQL CSV 파일 임포트 익스포트 하기

텍스트 파일로부터 데이터 가져오기 임포트

보통 파일로부터 데이터를 입력할 때에는 CSV(Comma Separated Values)형식과 같은 텍스트 파일을 사용합니다. 이런 형식의 파일을 읽어 들이는 것을 가져오기 또는 임포트(import)라고 합니다.

 

파일 가져오기.

파일에서 데이터를 가져올 때에는 LOAD DATA LOCAL INFILE이라는 명령을 사용합니다.

 

Load data local infile ‘파일명’ into table 테이블명 옵션설정;

 

Load data local infile 명령으로 데이터 형식을 지정하는 옵션

Fields terminated by 구분문자 기본설정은 ‘\t’:

Lines terminated by 줄바꿈 문자 기본설정은 ‘\n’: 줄바꿈

Ignore 처음에 건너 뛸 행 lines 기본설정은 0

 

우선 test.csv 파일을 다음과 같이 입력한 후 생성합니다.

A1, 강백호, 41

A2, 김민우, 29

A3, 김우빈, 20

A4, 문성근, 24

A5, 박찬호, 47

A6, 이수만, 60

 

위의 레코드를 table_03에 가져오는 명령을 내려 보겠습니다.

select * from table_03;

load data local infile ‘d:/test/test.csv’

into table table_03 fields terminated by ‘,’;

select * from table_03;

 

데이터를 텍스트 파일에 내보내기 익스포트

가져오기와는 반대로 테이블에 있는 데이터를 CSV 파일 등의 텍스트 파일로 내보낼 수가 있습니다. 이처럼 데이터를 파일로 내보내는 것을 내보내기 또는 익스포트(export)라고 합니다.

명령문은 다음과 같습니다.

select * into outfile ‘파일명옵션설정 from 테이블명;

옵션 설정에는 내보내기할 텍스트 파일의 형식을 지정합니다.

 

select * into outfile ‘d:/test/export.csv’

fields terminated by ‘,’ from table_03;

 

다음과 같이 익스포트 할 때 Access denied for user 라는 오류 메시지가 나올 때 다음과 같이 해결합니다.

우선 mysql 프롬프트 에서 빠져 나와서 root로 로그인후 파일 권한을 사용자 아이디에 부여합니다.

 

use mysql;

update user set file_priv = ‘y’ where user = ‘comster_user’;

flush privileges;

 

권한을 부여한 후 다시 사용자 아이디로 로그인한 후 실행해 보겠습니다.

위와 같이 csv 파일을 잘 export 합니다.

 

내보내기한 파일의 내용은 메모장과 같은 텍스트 편집기로 확인할 수 있습니다.

여기에서는 명령 프롬프트에서 type 명령을 사용해 보겠습니다. 먼저 MySQL 콘솔창을 종료하고 명령 프롬프트에 다음 명령을 실행합니다.

 

quit;

type d:\test\export.csv

 

 

반응형
Posted by 컴스터
,


반응형