Load Data (bulk insert) 시도 secure_file_priv 문제 뜰 때
Mysql 에서 bulk insert 명령을 실행할 때, secure_file_priv 에러 발생
-
쉘스크립트에서 아래와 같이 특정 파일을 bulk insert시도 하였고 secure_file_priv에러 발생하였다.
-
test.sh
#!/bin/bash mysql -uroot -p패스워드 db명 << EOF LOAD DATA INFILE 'test.txt' INTO TABLE user_log FIELDS TERMINATED BY ','; EOF
ERROR 1290 (HY000) at line 2: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
해결방법
- mysql에 접속하여 변수 상태를 확인한다.
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/ |
+---------------------------+
1 row in set (0.00 sec)
여기서 secure_file_priv에 설정된 경로에 파일이 위치해야만 bulk insert가 가능하다고 한다.
다만, mysql 설정 파일에 아래 내용을 추가한 후 mysql을 재시작하면 아무 위치에서나 bulk insert가 가능하다.
[mysqld]
secure-file-priv=""