今天遇到一个需求,要用自动任务将一张表的数据导入另一张表。具体场景及限制:将数据库A中表A的数据导入到数据库B的表B中(增量数据或全量数据两种方式);体系1和体系2只能分别访问数据库A和数据库B。附图:

实现方式:体系1将表A的数据导出成文件,存入MongoDB,成功后通知体系2,体系2进行数据导入。

重点来啦:在数据导出和数据导入的时候,有几下几种方式,此处具体介绍方法三

方法一:mysqldump,但是mysqldump是在操作系统命令行下运行的,并不满足这种场景。

方法二:通过sql进行查询,再通过io写成文件。此方式不做评价...ps:各种工具的导入导出就算了,有兴趣的自行了解

方法三:导出==》SELECT语句 INTO OUTFILE 路径+目标文件 [option]
    导入==》LOAD DATA LOCAL INFILE 路径+目标文件 INTO TABLE 表名 [option]

    其中option参数常用的5个选项:
    FIELDS TERMINATED BY '字符串':设置字符串为字段的分割符,默认值为 \t;
    FIELDS ENCLOSED BY '字符':设置字符串括上字段的值,默认值为 无任何符号;
    FIELDS OPTIONALLY ENCLOSED BY '字符':设置字符串括上char varchar text等字符型字段,默认值为 无任何符号;
    LINES STARTING BY '字符串':设置每一行开头的字符,默认值为 无任何字符;
    FIELDS ESCAPED BY '字符':设置转义字符,默认值为 \;
    LINES TERMINATED BY '字符串':设置每行结束符,默认值为 \n;

注意:1.导入的时候数据文件要和导入的表的结构相对应(字段长度、类型、列等等)

   2.导出的文件不是sql,不包含表结构,只是纯数据文件,且每一条数据占一行

   3.路径问题:有时候随便选择一个路径并不能导出数据文件,会报错
    如:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
解决方式:
  a)先通过SHOW VARIABLES LIKE '%secure%' 查询出默认的路径,使用默认路径进行导出,执行结果如下图

  b)修改 mysql 的 my.ini 配置文件中secure_file_priv来进行管理,
    i.不允许MySQL进行导入导出
      # Secure File Priv.
      secure-file-priv = null
    ii.只允许MySQL在指定的目录下进行导入导出操作
      # Secure File Priv.
      secure-file-priv = /目录/
    iii.不对MySQL的导入导出进行限制(注释或删除secure-file-priv配置)
      # Secure File Priv.
      #secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.7/Uploads"

最后附上eg:

SELECT * FROM pub_parameter INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\test8.sql' 

SELECT * FROM pub_parameter INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\test5.sql' FIELDS TERMINATED BY '|'              

转载于:https://www.cnblogs.com/TianSuoMuLong/p/9084912.html

MySQL数据导入导出(一)相关推荐

  1. MySql数据导入导出及解决ERROR2006(MySQL server has gone away)错误

    mysql数据导入导出方法总结 MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路劲的书写方式不同而已) 1.创建 ...

  2. mysql数据首次导入hive_sqoop1.4.7环境搭建及mysql数据导入导出到hive

    sqoop文档:http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html#_prerequisites 在hive创建表和导入数据时必须添加分隔符, ...

  3. mysql数据导入导出 CSV格式_MySQL中导入导出CSV格式数据

    原标题:MySQL中导入导出CSV格式数据 预备阅读:MySQL中的主键问题和赋权限问题 今天来讲一下在MySQL中导入和导出CSV格式数据的操作. CSV格式数据 逗号分隔值(Comma-Separ ...

  4. MySQL数据导入导出的两种方式

    文章目录 前言 一.使用Navicat Premium数据库可视化工具的企业管理器导入导出数据 1.企业管理器导入步骤: 2.企业管理器导出步骤: 二.cmd方式导入导出数据 1.cmd导入步骤: 2 ...

  5. mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路劲的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...

  6. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件

    Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...

  7. Mysql数据导入导出

    导出导入数据库 导出 mysqldump方法 mysqldump -u用户名 -p密码名 database [table]> 目标文件 导入 mysql -uroot -proot use da ...

  8. Mysql 数据 导入 导出

    windows环境 方法1:添加"系统环境变量".我的电脑>属性>高级>环境变量,在"系统变量"栏目下找到 path 双击编辑.先添加:(分号 ...

  9. mysql数据导入导出 CSV格式_mysql数据一键导出到csv文件

    在数据库中获取数据的结果集,通过fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件. fputcsv('打开的文件','数组数据'),该函数返回写入字符串的长度.若出错,则返回 fal ...

最新文章

  1. 【Flutter】监听滚动动作 控制组件 透明度渐变 ( 移除顶部状态栏空白 | 帧布局组件 | 透明度组件 | 监听滚动组件 )
  2. Mybatis-入门
  3. 策略模式学习三---总结
  4. No changes detected解决方案
  5. 轻松监控Docker容器中的ADF应用程序
  6. epoll实现高并发聊天室
  7. [转载] java对象在内存中的结构
  8. Linux入门学习(十)
  9. 对百度超级链Xuper使用过程中的进一步理解
  10. 阿里云Centos镜像源和EPEL源
  11. Linux运行脚手架vue,Linux Nodejs与vue脚手架详解
  12. Kylin兼容性问题解决
  13. java如何抽离_「小程序JAVA实战」 小程序抽离公用方法进行模块化(12)
  14. python制作的炫酷动画_【实战】这个炫酷的播放粒子效果,你也可以学会!使用Web动画API制作...
  15. 抓虫记之八:每天崩溃的服务器
  16. 分站php源码,企业网站管理系统云优CMS v2.0.5 分站版
  17. 苹果开发☀️ 一、Unity开发苹果应用流程
  18. uni-app学习笔记-实现一个简单统计图(三)
  19. 【工程实践】jsonlines 读取多行数据
  20. HDU 4607 Park Visit 两次DFS求树直径

热门文章

  1. python 3.9特性,开发者应该知道的Python 3.9新特性
  2. Vue之实例的生命周期
  3. android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系
  4. python 3d大数据可视化_Python大数据可视化编程实践-绘制图表
  5. Comet OJ - 2019 六一欢乐赛
  6. Linux 系统更改界面显示详解
  7. bzoj 3173 最长上升子序列
  8. Myeclipse下Maven的配置
  9. struts2-19-合法用户上传文件
  10. 生成n对括号的合法全排列