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

标签 mysql import command-line-interface

我知道如何通过 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/

相关文章:

PHP 将 MySQL 查询结果读取到数组中

php - 无法使用 php 从 mysql 显示 XML 数据

java - Java中是否可以通过单个声明对整个类进行静态导入?

audio - Musicbrainz 指纹识别

php - 获取分组在数组中的数据库值

mysql - 使用 SQL 返回与使用连接表的数组中的所有项目匹配的结果

android - 试图让用户将 .csv 文件导入我的应用程序

python - 有没有办法导入一组模块?

bash - 在命令行上使用粘贴或 PR 加入列不起作用

c++ - Marshal 管理了无符号整数的非托管数组