gpt4 book ai didi

mysql - 从本地导入 mysql 转储到 SSH

转载 作者:行者123 更新时间:2023-11-29 01:35:50 25 4
gpt4 key购买 nike

我找不到满足这一特定需求的解决方案。我的计算机上有一个 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 隧道。阅读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 实例一样。这样您就不必将转储文件 scp 到您的网络服务器。它将通过 ssh 隧道传输到网络服务器,然后直接应用于您的数据库。

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

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

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

关于mysql - 从本地导入 mysql 转储到 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com