본문 바로가기

Linux/MySQL

MySQL load data infile 문.

가끔씩 고객들이 load data infile할때 권한이 없다는 문의를 해온다.
작년에 이와 같은 문제로 해결해 준적이 있었는데 올해들어 이것저것 하다보니 까먹어 버렸었다;; 그러다 오랜만에 찾아보니 아래와 같이 나와있네.. ㅋ

1) load data infile '파일명' into table 테이블명
2) load data local infile '파일명' into table 테이블명


두 문장의 차이는 불러오려는 파일이 MySQL 서버에 있느냐? 아니면 원격에서 접속해서 처리하느냐이다.

local 명령어를 추가해서 사용할 경우에는 서버와 클라이언트 모두 local-infile옵션이 on으로 되어 있어야만 사용가능 하며 그에 따른 확인은 아래와 같이 할 수 있다.

mysql> show variables like 'local%';
위와 같은 명령어를 내렸을때 local-infileOn 으로 되어 있으면 사용이 가능한거다.

클라이언트에서 연결할때 사용하는 명령어는 아래와 같다.
$> mysql -u 아이디 -p -h 서버명 DB명 --local-infile=1