2011-01-20 23 views
12

我被卡住了。我基本上想要使用OUTFILE命令從遠程數據庫創建LOCAL數據文件(csv文件)。mysql從遠程數據庫轉儲到localhost outfile

我基本上是拉數據..並且想在我的本地文件服務器上創建它,而不是在遠程服務器上創建outfile。我的空間有限,因此我想在本地創建文件。如何做到這一點我錯過了什麼?謝謝!

這是我工作的語法到目前爲止命令行(它是創造我想要的文件,但在遠程服務器上)

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 INTO OUTFILE '/tmp/mytest.csv' FIELDS TERMINATED BY ',' FROM tst_p000 limit 10" 
+0

您是在遠程服務器還是本地服務器上運行此命令? – Raghuram 2011-01-20 04:28:02

+0

我不認爲是可行的,你有SSH登錄到數據庫服務器? – ajreal 2011-01-20 04:38:25

回答

19

按照MySQL Select syntax上,不能使用OUTFILE輸出到服務器本身之外的文件。

您需要將查詢的製表符分隔輸出轉換爲像這樣的CSV格式(sed command credited here)。

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 " | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv