繁体   English   中英

将 mysql dump 从本地导入到 SSH

[英]Import mysql dump from local to SSH

我找不到这个特殊需求的解决方案。 我的计算机上有一个 mysql 转储,我想使用 SSH 将它导入到 Web 服务器中。 我该怎么做? 我可以将 ssh 连接添加到 mysql 命令吗?

编辑:我用 SCP 做到的

scp -r -p /Users/me/files/dump.sql user@server:/var/www/private
mysql -hxxx -uxxx -pxxx dbname < dump.sql

正如上面的评论所说,最简单的解决方案是将整个转储文件 scp 到您的服务器,然后正常恢复。 但这意味着您必须有足够的可用磁盘空间来将转储文件存储在您的网络服务器上。 你可能不会。

另一种方法是设置一个临时的 ssh 隧道到您的 Web 服务器。 阅读https://www.howtogeek.com/168145/how-to-use-ssh-tunneling/以获取完整说明,但它看起来像这样:

nohup ssh -L 8001:localhost:3306 -N user@webserver >/dev/null 2>&1 &

这意味着当我连接到本地主机上的端口 8001(您可以在此处选择任何未使用的端口号)时,它实际上是通过 ssh 隧道绕过网络服务器,在那里它连接到端口 3306,即 MySQL 默认端口。

在上面的示例中,您的user@webserver只是一个占位符,因此您必须将其替换为您的用户名和您的网络服务器主机名。

然后恢复您的转储文件,就像您要恢复到在本地主机上的端口 8001 上运行的假设 MySQL 实例一样。 这样您就不必将转储文件发送到您的网络服务器。 它将通过 ssh 隧道传输到网络服务器,然后直接应用于您的数据库。

pv -pert mydumpfile.sql | mysql -h 127.0.0.1 -P 8001

您必须指定 127.0.0.1,因为 MySQL 客户端使用“localhost”作为非网络连接的特殊名称。

我喜欢用pv来读取转储文件,因为它输出一个进度条。

您可以针对您的问题尝试此解决方案:

使用 SSH 详细信息登录:-

SSH Host name : test.com
SSH User : root
SSH Password : 123456

连接 SSH :-

ssh root@test.com
enter password : 123456

登录 MySQL :-

mysql -u [MySQL User] -p
Enter Password :- MySQL Password

使用以下命令导入数据库:-

show databases; // List of Databased
use databasedname; // Enter You databased name to Import databased
source path;  // Set path for Import databased for ex : /home/databased/import.sql 

我希望这会帮助你。

是的,您可以使用一个命令来完成,只需使用“管道”或“流程替换”

对于您的“管道”示例:

ssh user@server "cat /Users/me/files/dump.sql" | mysql -hxxx -uxxx -pxxx dbname

或使用“过程替换”:

mysql -hxxx -uxxx -pxxx dbname < <(ssh user@server "cat /Users/me/files/dump.sql")

示例 2,从远程 server1 获取数据库转储并使用“Pipeline”在远程 server2 上还原:

ssh user@server1 "mysqldump -uroot -p'xxx' dbname" | ssh user@server2 "mysql -uroot -p'xxx' dbname"

或“过程替换”:

ssh user@server2 "mysql -uroot -p'xxx' dbname" < <(ssh user@server1 "mysqldump -uroot -p'xxx' dbname")

附加链接:

什么是“过程替换”:

http://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html

什么是“管道”:

http://www.gnu.org/software/bash/manual/html_node/Pipelines.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM