MySql数据导入导出(一)

今天遇到一个需求,要用自动任务将一张表的数据导入另一张表。具体场景及限制:将数据库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

时间: 2024-10-19 10:02:09

MySql数据导入导出(一)的相关文章

18 MySQL数据导入导出方法与工具介绍之二

批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令. 为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含有 与我们在mysql中输入的命令相同的文本.比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为 New_Data.txt及任何其他的合法名字,并不一定要以后缀sql结尾):USE Meet_A_Geek;INSERT INTO Customers

15 MySQL数据导入导出方法与工具介绍之三

您可以看到MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半.另外的一般是从MySQL数据库中导出数据.有许多的原因我们需要导出数据.一个重要的原因是用于备份数据库.数据的造价常常是昂贵的,需要谨慎处理它们.经常地备份可以帮助防止宝贵数据地丢失:另外一个原因是,也许您希望导出数据来共享. 在这个信息技术不断成长的世界中,共享数据变得越来越常见. 比方说Macmillan USA维护护着一个将要出版的书籍的大型数据库.这个数据库在许多书店之间共享,这样他们就知道哪些书将会很快出版.医

MYSQL数据导入导出

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. 进入cmd 导出所有数据库:输入:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径] 导出数据和数据结构:输入:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径] 导出数据库中的某各表: 输入: mysqldump -u [数据库用户名] -p [要备份的数据库名称] [要备份的数据

16 MySQL数据导入导出方法与工具介绍之一

1).mysqlimport的语法介绍:mysqlimport位于mysql/bin目录中,是mysql的一个载入(或者说导入)数据的一个非常有效的工具.这是一个命令行工具.有两个参数以及大量的选项可供选择.这个工具把一个文本文件(text file)导入到你指定的数据库和表中.比方说我们要从文件Customers.txt中把数据导入到数据库Meet_A_Geek中的表Custermers中:mysqlimport Meet_A_Geek Customers.txt注意:这里Customers.

Java实现Mysql数据导入导出

package com.backup; import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter; public class T

mysql数据库导入导出 查询 修改表记录

mysql数据导入导出: 导入: 把系统的文件的内容,保存到数据库的表里 导入数据的基本格式:mysql> load data infile "文件名" into table 表名 fields terminated by '分隔符' lines terminated by '\n'; 实例:把系统用户信息保存到hydra01库下的userinfo表里 mysql> create table userinfo(name char(20),password char(1),u

数据导入导出

1. 复制表命令格式 Create table  表名 复制表时,原表key字段的属性不会被复制给新表. 复制学生信息表stuinfo  复制叫stuinfo_1402 Create table stuinfo_1402 select * from stuinfo;  //把stuinfo中的内容全部复制 Create table stuinfo_1402 select name,age,sex from stuinfo where sex="man";    //把性别是man的na

MySQL多线程数据导入导出工具Mydumper

http://afei2.sinaapp.com/?p=456 今天在线上使用mysqldump将数据表从一个库导入到另外一个库,结果速度特别慢,印象中有个多线程的数据导入导出工具Mydumper,于是简单的调查和测试一下. 下午导数据的过程中,这个表是没有更新的,因此不需要确保多个数据之间的一致性,就简单的写个shell脚本启动多个mysqldumper来导数据,这样有几个问题: 需要处理表数据大小不均匀的问题,有的会很快结束,有的会比较慢. 如果需要保证多个导出之间的一致性时,则无法保证.

如何利用sqoop将hive数据导入导出数据到mysql

运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂hadoop大数据培训组原创,陆续有hadoop大数据技术相关文章奉上,请多关注! 在使用过程中可能遇到的问题: sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中. sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.ja