2008-10-29 15 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>