【发布时间】:2015-04-12 06:23:17
【问题描述】:
我正在尝试在 Windows 上使用 plink 创建通往 Linux 机器的隧道,并将转储文件最终保存在 Windows 机器上。看来this answer 会起作用,并且是我提出问题的基础。但是尝试一下并查看其他答案,我发现转储文件仍在 Linux 机器上。在投入生产之前,我正在使用 Windows 和 Ubuntu 14.04 在本地环境中进行尝试。在 Windows 8.1 中:
plink sam@192.168.0.20 -L 3310:localhost:3306
mysqldump --port=3310 -h localhost -u sam -p --all-databases > outfile.sql
我尝试在第二个中将localhost 与127.0.0.1 交换,将-N 添加到隧道设置的尾部,使用转储命令中的一个表,但尽管我的隧道,它好像第一个命令是忽略。其他答案表明向脚本添加更多命令,以便我可以使用pscp 复制文件。这也意味着重新连接到垃圾箱这个outfile.sql。不适合在其他服务器上获取其他转储。如果是这样,为什么要使用第一个命令?
我忽略了什么?在plink 中,第一个输出是打开Linux 服务器,我可以在其中运行mysqldump 命令。但似乎忽略了第一个命令。你怎么看?
【问题讨论】:
-
你在哪里执行
mysqldump? -
是的,好问题。在 Windows cmd 中,我执行了 plink 中的第一个命令来创建隧道。它作为登录的 ssh 命令滚入 Linux 主机。因此 mysqldump 在 linux 服务器上执行。我在 Linux 的其他 SO 帖子中看到他们最后使用了“-N”标志。尝试在 Windows 中执行此操作会使 CMD 程序挂起。所以我打开了一个新的 CMD 窗口并执行了 mysqldump 计算隧道是打开的。我相信这里缺少一些东西。
标签: mysql linux windows ssh plink