将 mysqldump 自动化到本地 Windows 计算机
Automate mysqldump to local Windows computer
我正在尝试在 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
添加到隧道设置的尾部,在转储命令中使用一个 table但是尽管有我的隧道,但好像第一个命令被忽略了。其他答案表明向脚本添加更多命令,以便我可以使用 pscp
复制文件。这也意味着重新连接到垃圾 outfile.sql
。不适合在其他服务器上获取其他转储。如果是这样,为什么还要使用第一个命令?
我忽略了什么?在 plink
中,第一个输出是打开 Linux 服务器,我可以在其中 运行 mysqldump
命令。但是似乎忽略了第一个命令。你怎么看?
您有多种选择:
将数据库远程转储到远程文件,然后将其下载到您的计算机:
plink sam@192.168.0.20 "mysqldump -u sam -p --all-databases > outfile.sql"
pscp sam@192.168.0.20:outfile.sql .
重定向 >
在引号内,因此您将远程计算机上的 mysqldump
重定向到远程文件。
这可能是最简单的解决方案。如果您在下载前压缩转储,它甚至会是最快的,尤其是当您通过慢速网络连接时。
远程执行 mysqldump
,但在本地重定向其输出:
plink sam@192.168.0.20 "mysqldump -u sam -p --all-databases" > outfile.sql
请注意,与前一种情况相比,重定向 >
在引号之外,因此您正在重定向 plink
的输出,即远程 shell 的输出,其中包含远程 mysqldump
.
的输出
到远程 MySQL 数据库的隧道连接,并使用 MySQL (mysqldump
):
的本地安装在本地转储数据库
plink sam@192.168.0.20 -L 3310:localhost:3306
在单独的本地控制台 (cmd.exe
) 中:
mysqldump --port=3310 -h localhost -u sam -p --all-databases > outfile.sql
在这种情况下,运行 远程没有任何东西(隧道末端除外)。
我正在尝试在 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
添加到隧道设置的尾部,在转储命令中使用一个 table但是尽管有我的隧道,但好像第一个命令被忽略了。其他答案表明向脚本添加更多命令,以便我可以使用 pscp
复制文件。这也意味着重新连接到垃圾 outfile.sql
。不适合在其他服务器上获取其他转储。如果是这样,为什么还要使用第一个命令?
我忽略了什么?在 plink
中,第一个输出是打开 Linux 服务器,我可以在其中 运行 mysqldump
命令。但是似乎忽略了第一个命令。你怎么看?
您有多种选择:
将数据库远程转储到远程文件,然后将其下载到您的计算机:
plink sam@192.168.0.20 "mysqldump -u sam -p --all-databases > outfile.sql" pscp sam@192.168.0.20:outfile.sql .
重定向
>
在引号内,因此您将远程计算机上的mysqldump
重定向到远程文件。这可能是最简单的解决方案。如果您在下载前压缩转储,它甚至会是最快的,尤其是当您通过慢速网络连接时。
远程执行
mysqldump
,但在本地重定向其输出:plink sam@192.168.0.20 "mysqldump -u sam -p --all-databases" > outfile.sql
请注意,与前一种情况相比,重定向
>
在引号之外,因此您正在重定向plink
的输出,即远程 shell 的输出,其中包含远程mysqldump
. 的输出
到远程 MySQL 数据库的隧道连接,并使用 MySQL (
的本地安装在本地转储数据库mysqldump
):plink sam@192.168.0.20 -L 3310:localhost:3306
在单独的本地控制台 (
cmd.exe
) 中:mysqldump --port=3310 -h localhost -u sam -p --all-databases > outfile.sql
在这种情况下,运行 远程没有任何东西(隧道末端除外)。