2013-05-30 2 views
4

내 애플리케이션이 서버 1에서 실행되고 DB가 서버 2에서 실행됩니다. 서버 1, 즉 애플리케이션 서버에 대한 선택 쿼리 결과를 CSV로 가져오고 싶습니다. 어떻게하면됩니까? Outfile을 선택하면 로컬 서버에서만 덤프되므로 도움이되지 않습니다. DB 서버에서 쿼리를 실행하면 응용 프로그램 서버가 아닌 파일이 만들어집니다. mysql -e 옵션은 CSV로 덤프하지 않기 때문에 도움이됩니다. 누구나 직접 원격 서버에서 CSV로 로컬 파일을 만드는 방법을 제안 할 수 있습니까? 감사합니다. .원격 서버에서 CSV로 결과 세트 내보내기

+0

사실 나는 당신이 설명했던 것과 같은 시나리오를 가지고 있습니다. 나는 대답을 계속했습니다. 여전히 당신이 실제로 구현 한 해결책에 관심이 있습니까? – Amogh

답변

6

outfile을 사용하고 파일을 로컬 호스트에 ftp로 전송하거나 일반적인 쿼리 결과를 일부 sed/awk에 전달하여 csv로 변환 할 수 있습니까? 내가 찾은 무엇

입니다 : 그 외에 mysql -umysqlusername -pmysqlpass databasename -B -e "select * from \`tablename\`;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > mysql_exported_table.csv

, 우리는 (들) FTP 솔루션을 것입니다.

+0

또는 CSV 파일을 원하는 곳에서 mysql을 실행하고 '-h yourdb.example.com'을 사용하여 연결하십시오 (직접 액세스 할 수 있다고 가정) – symcbean

+1

@symcbean'-h'를 사용하여 원격 서버에 연결하면 파일이 원격 DB에 여전히 쓰여집니다 서버에서 'SELECT ... INTO OUTFILE' 메소드를 사용하면됩니다. – mltsy

+1

@mitsy : 위와 같이 명령을 실행하면 파일이 클라이언트에 생성됩니다. – symcbean