【问题标题】:mysqldump from remote host来自远程主机的 mysqldump
【发布时间】:2012-11-15 16:52:52
【问题描述】:

是否可以通过 ssh 连接从远程主机转储数据库并将备份文件保存在我的本地计算机上。

如果是这样,如何实现?

我假设它将是从 ssh 到转储的管道输出的某种组合,反之亦然,但无法弄清楚。

【问题讨论】:

标签: mysql linux ssh


【解决方案1】:

我创建了一个script,以便使用Michel Feldheim 提供的答案作为起点,更轻松地在远程主机上自动执行mysqldump 命令:

mysqldump-remote

该脚本允许您从带有或不带有SSH 的远程主机获取数据库转储,并可选择使用包含环境变量的.env 文件。

我计划使用该脚本进行自动数据库备份。请随时create issues / contribute - 希望这也对其他人有所帮助!

【讨论】:

    【解决方案2】:

    从@MichelFeldheim 的解决方案开始,我会使用:

    $ ssh user@host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql
    

    【讨论】:

      【解决方案3】:

      这会通过 ssh 转储、压缩和流式传输到您的本地文件中

      ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 
      

      【讨论】:

        【解决方案4】:

        ssh -f user@server.com -L 3306:server.com:3306 -N

        然后:

        mysqldump -hlocalhost > backup.sql

        假设您也没有在本地运行 mysql。如果你这样做,你可以将端口调整为其他东西。

        【讨论】:

        • 我需要在一个命令中使用它,但这就是为什么我认为会有管道组合
        • 这是在指定端口打开隧道吗?还没有看到这种方法
        • @Feldheim yes 创建一个隧道,所有通信都将被加密。至于这个问题的最佳答案,我喜欢你的方法。你得到我的支持。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-11
        • 1970-01-01
        • 2019-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多