SELECT .. INTO OUTFILE을 사용하면 파일로 덤프할 수 있다. 



select id, name from members where id >= 1 INTO OUTFILE '/home/www/file.txt'




하지만, mysql master를 실행할 때, --secure-file-priv=path 옵션을 주어 실행했다면, slave에서도 SELECT .. INTO OUTFILE을 사용할 수 없다. 


즉, 아래와 같은 에러가 발생한다.



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



--secure-file-priv 변수를 확인해본다.


mysql> show variables like 'secure%';

+------------------+---------------+

| Variable_name    | Value         |

+------------------+---------------+

| secure_auth      | OFF           |

| secure_file_priv | /xxx/yyy |

+------------------+---------------+



mysql 슬레이브로 접근하여 secure_file_priv  옵션의 값에 맞게 SELECT .. INTO OUTFILE을 사용한다 하더라도, mysql client 의 로컬 디렉토리에는 전혀 저장할 수 없다.



select id, name from members where id >= 1 INTO OUTFILE '/xxx/yyy/file.txt'


실행은 되더라도 mysql master 서버에 위치한 /xxx/yyy에만 저장되니 원격에서 연결된 mysql client의 로컬 디렉토리에는 mysql 데이터를 저장할 수 없다. 






참고로,


secure_file_priv  옵션은 SELECT .. INTO .. 와 LOAD 문도 영향을 준다. 






'DB' 카테고리의 다른 글

[mysql] auto increment 이슈  (0) 2016.12.19
[mysql] alter table after 필드  (0) 2016.11.16
[mysql] SELECT .. INTO OUTFILE  (0) 2016.04.16
[mysql] INSERT INTO .. VALUES ON DUPLICATE KEY UPDATE.. 응답 값  (0) 2016.03.31
[MySQL] GROUP_CONCAT  (0) 2016.02.15
[mysql] SELECT CONVERT_TZ  (0) 2016.02.03
Posted by 김용환 '김용환'