JdbcTemplate을 사용해서 다음 명령 실행시
LOAD DATA LOCAL INFILE '[FILENAME]'
REPLACE INTO TABLE [TABLE]
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES다음과 같은 에러가 발생할 경우
java.sql.SQLSyntaxErrorException: The used command is not allowed with this MySQL version
MySQL 서버의 local_infile 변수를 TRUE로 설정한다.
SET GLOBAL local_infile = TRUE;
SHOW GLOBAL VARIABLES LIKE 'local_infile';
datasource 주소에 allowLoadLocalInfile을 true로 설정한다.
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306?allowLoadLocalInfile=true로드하는 데이터 중 "Hello\" 와 같은 값이 있을 경우, 이스케이프 문자를 제거해서 로드한다.
...
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ''
LINES TERMINATED BY '\n'
...