gpt4 book ai didi

mysql - 将 mysqldump 自动化到本地 Windows 计算机

转载 作者:可可西里 更新时间:2023-11-01 10:35:39 27 4
gpt4 key购买 nike

我正在尝试在 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 命令。但是似乎忽略了第一个命令。你怎么看?

最佳答案

您有多种选择:

  • 将数据库远程转储到远程文件,然后将其下载到您的机器上:

    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

    在这种情况下,没有任何东西在远程运行(隧道末端除外)。

关于mysql - 将 mysqldump 自动化到本地 Windows 计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461841/

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