2008-10-29 24 views

回答

23

你沒有說你必須到遠程服務器什麼樣的網絡接入。

假設您具有對遠程服務器的SSH訪問權,您可以將遠程mysqldump的結果傳遞給mysql命令。我只是測試這一點,它工作正常:

ssh remote.com "mysqldump remotedb" | mysql localdb 

我把東西像用戶名,密碼,主機置於.my.cnf所以我不會打字不斷他們 - 惱人的壞對多用戶系統的安全性,你是把以明文形式將密碼放入您的bash_history!但是你可以很容易地添加-u -p -h東西回來在兩端,如果你需要它:

ssh remote.com "mysqldump -u remoteuser -p'remotepass' remotedb" | mysql -u localuser -p'localpass' localdb 

最後,你可以管通過gzip通過網絡壓縮數據:

ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb 
+0

當我遷移服務器時,這幫了我很大的忙。希望提問者可以選擇這個作爲問題的答案。 – Nikko 2011-12-13 16:19:20

0

我會使用wget要麼將​​它下載到文件或管道它。

3

只是想我因爲我本地虛擬機上的空間嚴重不足,但是如果.sql文件已存在於遠程服務器上,那麼您可以這樣做;

ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>