본문 바로가기
DB/mysql or maria

SQL Error [1290] [HY000]: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

by AUSTAR 2024. 7. 29.

 

SQL Error
SQL Error

 

windows 환경에서 Mysql, MariaDB를 사용하고 있을 경우 로컬 파일을 DB에 입력할 때 발생하는 오류이다.

보안 옵션에 의해 로컬 파일을 DB에서 사용할 경우 특정 위치에 파일에 위치시킨 파일을 사용하지 않았을 경우 발생하며

 

SHOW VARIABLES LIKE 'secure_file_priv';

다음 구문을 DB에서 실행 시키면 현재 내 DB 환경에 따른 공유 폴다 위치를 확인할 수 있다.

 

내 경우는 다음과 같았고

 

 

해당 위치에 따른 다음 쿼리문을 사용하였음에도 오류가 발생하였다.

 

 

LOAD DATA INFILE 'C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\dummy_data_faker.xlsx' 
INTO TABLE tbl_user 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS;

이 때 사용한 쿼리문은 다음과 같다.

 

SQL Error [1290] [HY000]: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

발생한 오류 구문은 다음과 같다.

 

분명 SHOW VARIABLES LIKE 'secure_file_priv'; 를 이용하여 나온 공유 폴더에서 사용하였는데 어째서 오류가 발생했는지 확인해보니 secure_file_priv 가 알려주는 위치를 windows 환경에서는 그대로 사용할 경우 / 와 \에 따른 경로 문제로 오류가 발생하는 것을 확인하였다.

 

따라서 

 

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/dummy_data_faker.xlsx' 
INTO TABLE tbl_user 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS;

 

다음과 같이 경로의 역슬래시를 슬래시로 변경하면 정상적으로 위치를 인식하여 쿼리문을 사용할 수 있다.