> 안녕하세요.
>
> 먼저 지금 하시려는 작업은 보안과 관계되는 부분입니다.
> 만일 아래와 같이 명령을 내려 작업이 성공적으로 이루어진다면 큰일일겁니다.
> mysql> SELECT * FROM 임의의패스화일 INTO OUTFILE '/etc/passwd';
> ERROR 1086: File '/etc/passwd' already exists
>
> 그러나 에러가 나겠지요.
> mysql 매뉴얼 6.2 를 보시면 설명이 나와 있습니다.
> 화일을 덮어 쓸 수 없습니다.
> 더우기 FILE 권한을 줄 때는 각별히 유의하라는 말도 있습니다.
>
> 다음과 같이 해 보십시오.
> mysql> LOAD DATA INFILE "/etc/passwd" INTO TABLE 패스워드테이블 FIELDS TERMINATED BY ':';
>
> 패스화일이 고스란히 들어갑니다.
>
> 제가 판단하건 대 하시고자 하시는 작업이 고객과 관련하여
> 어떤 쿼리를 주었을 때 늘 새로운 내용을 화일화 하실려고 하는 듯 싶습니다..
>
> 새로운 내용의 갱신은 디비안에서 처리가 가능할 거라고 생각됩니다.
> 어떤 것을 구현 할 지 말씀해 주시면 여러분들이 도움 드리기 더 수월치 않나
> 감히 생각해 봅니다.
>
> 조속한 해결을 바라며....
>
>
> > 김순석님, 정재익님 답변 감사드립니다.
> >
> > 문제는 해결 했는데..다른 문제가 생기더군요..
> >
> > mysql -u root DB -e 'select * into outfile "asdf.txt" from member;';
> >
> > 이렇게 하면 asdf.txt에 결과가 출력되는데요..
> >
> > 두번째 하면 file exists하면서 에러가 떨어지네요..
> >
> > ERROR 1086 at line 1: File '/usr/local/apache/htdocs/asdf.txt' already exists
> >
> > 화일을 계속 덮어쓰기 할 수 는 없나요?
> >
답변 감사드립니다.
아래와 같이 해결 하였습니다.
rm asdf.txt
mysql -u root DB -e 'select * into outfile "asdf.txt" from member;';
shell script내에서 화일을 지운후 다시 출력하는 것이 더 쉬울 것 같습니다.
위에 있는 sql은 좀 이해해가 어려워서요..
그럼, 좋은 하루 되세요!
|