7

我知道如何通过 cli 导入 sql 文件:

mysql -u USER -p DBNAME < dump.sql

但那是如果dump.sql 文件是本地的。我如何使用远程服务器上的文件?

4

3 回答 3

24

你没有说你对远程服务器有什么网络访问权限。

假设您对远程服务器具有 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
于 2008-10-29T20:39:43.363 回答
3

只是想我会添加这个,因为我的本地 VM 上的空间严重不足,但是如果远程服务器上已经存在 .sql 文件,你可以这样做;

ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>
于 2015-07-30T15:19:05.250 回答
0

我会使用wget将其下载到文件或通过管道输入。

于 2008-10-29T20:08:08.637 回答