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] 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 |