簡體   English   中英

從遠程MySQL服務器本地導出.csv數據

[英]Exporting .csv data locally from a distant MySQL server

我在一台PC上運行MySQL服務器(WinXP)。

在另一台PC(WinXP)上,我想將表備份到csv文件,所以我有一個c ++程序連接到MySQL數據庫,然后我發出這樣的命令:

SELECT data FROM table WHERE something=ABC
INTO OUTFILE c\tmp.txt
FIELDS TERMINATED BY ';' 
OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ";";

數據似乎導出但在服務器上“c:\\”不在我的電腦上:s“c:\\”。 我不能只通過LAN獲取數據,因為我的程序作為Windows服務運行。

我已經看過這個帖子,但似乎我不能使用“FIELDS TERMINATED BY”等解決方案。

我可以從遠程服務器本地導出csv數據,還是必須先在本地遷移數據?

問題“已解決”:因為看起來你不能以“簡單”的方式做到這一點,我在帶有MySQL的PC上運行服務,並讓DCom服務器定期將數據移動到另一台PC。

打算發表評論(但我沒有足夠的代表評論)。 不確定您是否能夠安裝,但您可以嘗試使用cygwin + sqshhttp://www.sqsh.org/sqsh_home.html )。 我是一個linux用戶,sqsh是一個從數據庫中獲取數據的好工具。

SELECT ... INTO OUTFILE顯然將文件寫入mysql-demon的本地文件系統。 一種選擇可能是共享客戶端PC的目錄,在服務器上打開它並使用其路徑作為outfile-option。 如果這不是一個選項,您可能必須選擇c ++程序中的數據並將其(手動類型)寫入本地csv文件。

如果您不想安裝額外的命令,請使用以下命令。

mysql -h remotedb.db -u ident -p -B -e "your query ;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > localfile.csv

-B表示將輸出作為制表符分隔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM