mysql从远程服务器通过cli导入sql

oce*_*tna 7 mysql import command-line-interface

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

mysql -u USER -p DBNAME < dump.sql
Run Code Online (Sandbox Code Playgroud)

但是,如果dump.sql文件是本地的.我怎么能在远程服务器上使用文件?

joe*_*rdi 23

您没有说明您对远程服务器的网络访问权限.

假设您具有对远程服务器的SSH访问权限,则可以将远程mysqldump的结果通过管道传递给mysql命令.我刚试过这个,它运行正常:

ssh remote.com "mysqldump remotedb" | mysql localdb
Run Code Online (Sandbox Code Playgroud)

我把用户,密码,主机之类的东西放进去,.my.cnf所以我不会经常输入它们 - 烦人且对多用户系统的安全性不好,你把密码以明文形式放入你的bash_history中!但是-u -p -h如果需要,你可以轻松地将这些东西重新添加到两端:

ssh remote.com "mysqldump -u remoteuser -p'remotepass' remotedb" | mysql -u localuser -p'localpass' localdb
Run Code Online (Sandbox Code Playgroud)

最后,您可以通过管道gzip来压缩网络上的数据:

ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb
Run Code Online (Sandbox Code Playgroud)

  • 如果我没有ssh访问但我可以通过我的本地"mysql --host = mydomain.com --user = user --pass = pass连接到远程mysql服务器怎么办?如何检索*.sql文件我需要转储? (2认同)