[MySQL] ERROR 1290 --secure-file-priv option 장애

MySQL Client로 select INTO OUTFILE으로 덤프파일을 내릴때 다음과 같은 에러가 발생할 수 있습니다.

 

mysql> select * INTO OUTFILE '/data/outfile.sql' FIELDS TERMINATED BY '|' from schema.table;

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

 

위의 에러는 보안관련 에러로 특정 디렉토리 이외에는 파일 쓰기가 금지되어 있을때 위의 에러가 발생합니다.

해결방법은 2가지 입니다. 해당 특정 디렉토리만 이용하거나 모든 디렉토리를 이용할 수 있도록 위의 보안 옵션을 해제하는 것입니다.

 

1. 특정 디렉토리 확인 방법

mysql> select @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/     |
+---------------------------+
1 row in set (0.00 sec)

위의 디렉토리에다가 outfile을 하여 파일을 작성하는 것입니다.

 

2. --secure-file-priv 무력화

MySQL 서버의 환경파일을 수정합니다.

shell> vi /etc/mysql/my.cnf

 

그리고 아래의 섹션에 항목을 추가합니다.

[mysqld]
secure-file-priv=""

 

그리고 MySQL 서버를 재시작합니다.

shell> systemctl restart mysqld

(위의 명령어는 rpm으로 설치했을시 해당됩니다. 각자 시스템 환경에 맞게 재시작합니다.)

 

변경사항을 확인합니다.

mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
|                           |
+---------------------------+

Designed by JB FACTORY