zoukankan      html  css  js  c++  java
  • mysq将表数据导入文件并将文件从远程服务下载到本地

    1,将mysql中某个表的数据导入到文件:

      首先,将要执行的sql写在一个后缀为“.sql”的文件(比如:sql20170720.sql,内容为:select * from db_deb.t_low where  create_time between "2017-06-19 00:00:00" and "2017-07-20 23:59:59" ;)。

      然后执行:mysql -h100.11.111.20 -Pabvf.--default-character-set=utf8 -A<sql20170720.sql>sxf_result01.txt

    其中mysql -h100.11.111.11 -P4049 -uu -pp --default-character-set=utf8 -A表示数据库的链接(包含mysql的服务器地址,用户名,密码以及编码类型)

    <sql20170720.sql>sxf_result01.txt表示要执行的sql文件,和最后将导出是数据保存到sxf_result01.txt中(此文件会自动在当前目录下生成,执行上边命令之后便可以在当前目录下看到)

      然而,当文件生成后,那该如何将在这个服务上的sxf_result01.txt文件下载到本地呢。

    如果当前服务器上安装有又下载文件的软件那么直接使用sz即可将文件下载到本地。但是如果没有,那这就变得比较麻烦了。现在就来说一下本人遇到的一个问题,有a,b,c三个服务器,只有a上安装了可以下载文件的软件就是可以使用sz命令进行文件下载,但是a并不能直接连接到c,而是要通过b才能跳转到c(这是服务器设置的网关与网段的问题),所以现在就需要通过b将c中的文件下载到b服务,再通过a将b服务中的文件下载下来,最后才能通过a使用sz命令将文件下载到本地。

    具体命令流程:1,在服务c中执行mysql -h100.11.111.20 -Pabvf.--default-character-set=utf8 -A<sql20170720.sql>sxf_result01.txt命令后,在c服务上便有了sxf_result01.txt;

    2,在c服务上执行exit退出命令便进入了b服务,便能在b服务上执行“sftp 用户名@c服务地址”(sftp 用户名@地址:表示通过sftp连接c服务,b,c之间就可以进行文件传输了。quit退出sftp),再执行“get  sxf_result01.txt”(表示从c中将文件下载到b上),此时b服务器上就有了sxf_result01.txt文件了。同样的操作,将b中的文件下载到a上,a有了此文件,再在a上执行“sz sxf_result01.txt ”,选择本地保存的路径,便可以将文件下载到本地了。

    注意:如果文件比较大建议先压缩之后在进行传输(查看文件大小 ls  -lht ,压缩命令:zip 文件名.ZIP  要压缩的文件。一般一百多兆的文件可以压缩到只有几兆),如果服务器使用的人比较多,最好对你的文件传输进行限速,不然被众矢之的了也是活该的。

  • 相关阅读:
    skynet debug console 使用
    在linux上定时修改root密码,以邮件形式发送给使用者
    在linux nginx服务器上,给内网ip配置https
    在linux apache服务器上,给内网ip配置https
    redis集群配置
    记一次删除k8s namespace无法删除的问题
    向docker镜像中传递变量的两种方式
    用kubeadm简单部署k8s
    第十六天python3 文件IO(二)
    第十五天python3 文件IO(一)
  • 原文地址:https://www.cnblogs.com/jjyz/p/7212019.html
Copyright © 2011-2022 走看看