.sql 파일의 OUTFILE 문을 수동으로 절대 경로 이름을 지정하지 않고 .sql 파일 자체의 현재 작업 디렉터리 경로를 가리키는 방법이 있습니까? 지금과 같이 기본 위치는 작업중인 스키마의 데이터 디렉토리 (예 : C : \ progra ~ 1 \ mysql \ etc \ etc)입니다.Mysql outfile을 현재 작업 디렉토리로 보내시겠습니까?
감사합니다.
.sql 파일의 OUTFILE 문을 수동으로 절대 경로 이름을 지정하지 않고 .sql 파일 자체의 현재 작업 디렉터리 경로를 가리키는 방법이 있습니까? 지금과 같이 기본 위치는 작업중인 스키마의 데이터 디렉토리 (예 : C : \ progra ~ 1 \ mysql \ etc \ etc)입니다.Mysql outfile을 현재 작업 디렉토리로 보내시겠습니까?
감사합니다.
스크립팅과 같은 것이 최선의 방법 일 것 같습니다. Perl 또는 PHP를 사용하여 cwd에있는 outfile을 사용하여 쿼리를 생성합니다.
직접 입력하지는 않지만 명령 줄에서 mysql
을 사용하여 유사한 기능을 사용할 수 있습니다.
첫째, 어떤 배경 : LOAD DATA INFILE
문이있는 당신이 에 로컬 파일 시스템에있는 파일에서 데이터를 읽을 수 있습니다 LOCAL
변형, LOAD LOCAL DATA INFILE
; LOCAL
이 없으면 서버의 지정된 위치에서 읽습니다. 불행하게도
, 항상이 서버 (예 : NFS 또는 CIFS 공유와 같은 서버 구성 마운트를 포함 할 수 있습니다)의 파일 시스템에 지정된 위치에 기록하는 SELECT INTO OUTFILE
문; LOCAL
해당 사항이 없습니다.
그러나 mysql
클라이언트 배치 에서 모드를 사용하여 이러한 기능에 근접 할 수
mysql -e 'SELECT * FROM db1.tbl1' -B > output.tsv
-B
옵션은 배치 모드에서 실행하도록 문을 원인 때문에 쿼리 결과는 탭에 인쇄 테두리가없는 - 방식으로. > somefile.txt
을 사용하면 해당 출력을 지정된 파일로 리디렉션 할 수 있기 때문에 FIELDS
또는 LINES
옵션이 SELECT INTO OUTFILE
이 아니더라도 원하는만큼의 효과를 얻을 수 있습니다.
mysql 서버의 OUTFILE 경로를 NFS/CIFS 등의 적절한 구성표를 사용하여 로컬 파일 경로 (디스크)로 내 보낸 다음 마운트 할 수 있습니다. –
OP의 질문에 도움이되지 않지만 그 점을 포함하여 답변을 업데이트했습니다. 당신. –