我知道如何通过 cli 导入 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
关于mysql 通过 cli 从远程服务器导入 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/248219/