我知道如何通過CLI導入SQL文件:mysql的輸入SQL從遠程服務器
mysql -u USER -p DBNAME < dump.sql
但這是如果dump.sql文件是本地的。我怎麼能在遠程服務器上使用文件?
我知道如何通過CLI導入SQL文件:mysql的輸入SQL從遠程服務器
mysql -u USER -p DBNAME < dump.sql
但這是如果dump.sql文件是本地的。我怎麼能在遠程服務器上使用文件?
你沒有說你必須到遠程服務器什麼樣的網絡接入。
假設您具有對遠程服務器的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
我會使用wget要麼將它下載到文件或管道它。
只是想我因爲我本地虛擬機上的空間嚴重不足,但是如果.sql文件已存在於遠程服務器上,那麼您可以這樣做;
ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>
當我遷移服務器時,這幫了我很大的忙。希望提問者可以選擇這個作爲問題的答案。 – Nikko 2011-12-13 16:19:20