【问题标题】:Loading data into Mysql table from file over SSH通过 SSH 从文件将数据加载到 Mysql 表中
【发布时间】:2014-09-08 07:37:04
【问题描述】:

Server1 有一个 MySQL 服务器,Server2 有一个文件,我需要将它导入到表 Server1 的 MySQL 服务器中。我只能使用 SSH 访问 Server2 及其文件。

现在最好的解决方案是什么?一种低效的方法是将scp 文件放到Server2 的硬盘上,然后对该文件执行LOAD DATA INFILE。但由于文件很大,我想避免这样做。

有没有办法从Server2 直接将文件加载到Server1 的Mysql 中?

【问题讨论】:

    标签: mysql ssh


    【解决方案1】:
    cat file.sql | ssh -C -c blowfish username@myserver mysql -u username -p database_name
    

    在此命令中,-C 会在传输期间启用压缩,而 -c blowfish 会选择一种加密算法,该算法使用的 CPU 比默认算法少。

    常识会建议传输压缩文件,以便您可以使用例如 MD5 验证校验和,然后从压缩文件运行导入。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您想使用 ssh 隧道来远程安全地访问您的 mysql 服务器。

      以下命令将创建端口转发:

      $ ssh -f -L <[local address:]port>:<remote address;port> -N <user id>
      

      例如:

      $ ssh -F -L 45678:localhost:3307 -N foo@localhost
      

      将使用 foo 的凭据将 localhost 上的默认 mysql 服务器端口转发到端口 45678(这可能对测试有用)。

      然后,您可以简单地使用本地程序连接到服务器:

      $ mysql -p -u foo -P 45678
      

      在 mysql 提示符下,可以使用 LOAD DATA 语句批量加载数据文件,该语句采用可选关键字 LOCAL 表示文件位于连接的客户端。

      文档:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-02
        • 2012-09-15
        • 2014-11-23
        • 1970-01-01
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多