数据库数据的导入和导出
受secure_file_priv配置项影响
#限制导入导出,null时无法进行数据的导入导出,空时不限制,设置了目录则只能对该目录下的文件进行导入导出
show variables like "secure_file_priv" 查看
#--------------------------------------------------------------------------------------#
导出:

语法:

SELECT ... INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
[export_options]

export_options:
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]

如:

SELECT
bres_user.account,
bres_user.`password`,
bres_user.telnumber,
bres_user.email,
bres_user.nicename,
bres_user.introduction,
bres_user.sex,
bres_user.regtime,
bres_user.birthday
FROM
bres_user
LIMIT 100 INTO OUTFILE 'H:/phpapache/bres_user.txt' FIELDS TERMINATED BY ', ' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

注意导出数据中控制用 \N 表示的

导出样式:

"user1","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","135.......7","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
"user2","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","135.......5","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
"user3","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","135.......4","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
"user4","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","135.......3","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
"user5","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","135.......2","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
"user6","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
"user7","$2y$08$Gj0HBirW/w4Q41J8j2md6uv/XE31SC6xAjvKMmvevPD/bOOxaa41K","135.......6","emai...@qq.com","nickname...","no say faied",,"2018-08-03 01:33:00","1993-09-16"
......

#--------------------------------------------------------------------------------------#
导入:

语法:

load data [low_priority] [local] infile '/path/file' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(column_name,column_name2,...)]

如:

LOAD DATA LOW_PRIORITY INFILE 'H:/phpapache/www/bres/datadesign/datafile/user_into_sql.txt' REPLACE INTO TABLE bres_user CHARACTER
SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
(
bres_user.account,
bres_user.`password`,
bres_user.telnumber,
bres_user.email,
bres_user.nicename,
bres_user.introduction,
bres_user.sex,
bres_user.regtime,
bres_user.birthday
)

LOAD DATA LOW_PRIORITY INFILE 'H:/phpapache/mysql-5.6.24/uploade/dataAug-2-2018.csv' IGNORE INTO TABLE bres_products CHARACTER
SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (
bres_products.productid,
bres_products.title,
bres_products.categoryid,
bres_products.create_date,
bres_products.expire,
bres_products.up_date,
bres_products.ownerid,
bres_products.total_num,
bres_products.current_num,
bres_products.promotion_sum,
bres_products.promotion_cur,
bres_products.`status`
)

提示:注意导入csv文件时需要注意文件的编码格式为 ANSI或utf-8 ,最好是以ANSI编码,可用notepad++转码一下

测试数据可用数据库压力工具或脚本生成大量的随机数据来测试,这是用 generatedata 随机生成的数据来测试的

参数:

1. 如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:
load data low_priority infile "/home/mark/data sql" into table Orders;

2. 如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上

3.replace和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。例如:
load data low_priority infile "/home/mark/data sql" replace into table Orders;

4 分隔符
1.fields关键字指定了文件记段的分割格式,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项:
terminated by 分隔符:意思是以什么字符作为分隔符,默认情况下是tab字符(\t)
enclosed by 字段括起字符,默认'"';
escaped by 转义字符,默认的是反斜杠(backslash:\ )

例如:load data infile "/home/mark/Orders txt" replace into table Orders fields terminated by',' enclosed by '"';

2.lines 关键字指定了每条记录的分隔符默认为'\n'即为换行符
如果两个字段都指定了那fields必须在lines之前。如果不指定fields关键字缺省值与如果你这样写的相同: fields terminated by'\t' enclosed by ’ '' ‘ escaped by'\\'
如果你不指定一个lines子句,缺省值与如果你这样写的相同: lines terminated by'\n'

例如:load data infile "/jiaoben/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';

5.load data infile 可以按指定的列把文件导入到数据库中。
当我们要把数据的一部分内容导入的时候,,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要。
比方说,我们要从Access数据库升级到MySQL数据库的时候

下面的例子显示了如何向指定的栏目(field)中导入数据:
load data infile "/home/Order txt" into table Orders(Order_Number, Order_Date, Customer_ID);

6 当在服务器主机上寻找文件时,服务器使用下列规则:
(1)如果给出一个绝对路径名,服务器使用该路径名。
(2)如果给出一个有一个或多个前置部件的相对路径名,服务器相对服务器的数据目录搜索文件。
(3)如果给出一个没有前置部件的一个文件名,服务器在当前数据库的数据库目录寻找文件。
例如: /myfile txt”给出的文件是从服务器的数据目录读取,而作为“myfile txt”给出的一个文件是从当前数据库的数据库目录下读取。

注意:字段中的空值用\N表示

LOAD DATA INFILE 一直被认为是MySQL很强大的一个数据导入工具,因为他速度非常的快。
不过有几个问题一定要注意
1、编码。
2、灵活导入导出。

注意:/path/file 中的 path 需要有mysql的权限,否则会报错,因此一般存放于数据库数据目录下

#--------------------------------------------------------------------------------------#
mysqlimport 可执行文件来导入导出

语法:

mysqlimport -u root -pPassword [--local] dbname filename.txt [OPTION]

参数:

“Password”参数是root用户的密码,必须与-p选项紧挨着;
“--local”是在本地计算机中查找文本文件时使用的(指定 --local 后,文本文件可以放在任何地方进行导入,否则只能放在mysql的data目录下);
“dbname”参数表示数据库的名称;
“filename.txt”参数指定了文本文件的路径和名称,文件里的数据插入到文件名去掉后缀后剩余名字对应的表中;
“OPTION”为可选参数选项,其常见的取值有:

--fields-terminated-by=字符串:设置字符串为字段之间的分隔符,可以为单个或多个字符。默认值为制表符“\t”。
--fields-enclosed-by=字符:设置字符来括住字段的值,只能为单个字符。
--fields-optionally-enclosed-by=字符:设置字符括住CHAR、VARCHAR和TEXT等字符型字段,只能为单个字符。
--fields-escaped-by=字符:设置转义字符,默认值为反斜线“\”。
--lines-terminated-by=字符串:设置每行数据结尾的字符,可以为单个或多个字符,默认值为“\n”。
--ignore-lines=n:表示可以忽略前n行。

#--------------------------------------------------------------------------------------#

数据库表的结构和数据的导入导出
使用mysqldump: mysqldump命令位于mysql/bin/目录中

导出:
mysqldump -u root(用户) -p mysql(密码) database(数据库名) table1(表1) table2(表2) > c:\foo.sql
把指定的数据库中的表1和表2 导出到foo.sql文件中(保存的是sql语句)

导入:
mysqldump -u root -p mysql database(数据库名) > c:\foo.sql

1.导出整个数据库

mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
  C:\Users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql

  2.导出一个表,包括表结构和数据

  mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名
  C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql

  3.导出一个数据库结构
  C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec > e:\sva_rec.sql

4.导出一个表,只有表结构

  mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
  C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql

  5.导入数据库

  常用source 命令
  进入mysql数据库控制台,
  如mysql -u root -p
  mysql>use 数据库
  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
  mysql>source d:wcnc_db.sql

#--------------------------------------------------------------#

随机生成测试数据 的生成器汇总(转)

DataFactory

是一种强大的数据产生器,拥有图形界面,它允许开发人员和QA很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQL Server数据库,支持ODBC连接方式,无法直接使用MySQL数据库。 DataFactory 首先读取一个数据库方案,用户随后点击滑鼠产生一个数据库。

JMeter

是apache开源的性能测试工具,可以用来作为生成测试数据的工具. 
xcopy系列开源性能测试工具,如tcpcopy可以把外网机器的用户请求复制到测试环境.

Generatedata     传送门

是一个免费、开放源码的脚本,主要由javascript , PHP和MySQL构成,它可以让您可以迅速生成大量各种格式的客户数据,用于测试软件,把数据输入数据库等。

DBMonster

是一种生成随机测试数据,并插入到SQL数据库的工具。

CSV Data Generator

这是一个基于Ruby编写的免费数据生成器,可以输出数据格式为CSV文件。

Datagenerator

是一个以图形用户界面生成规则为基础的测试数据生成器,包括的数据库如MySQL/Firebird/interbase/ mssql/Oracle/SQLite/PostgreSQL 等等。

生成器 参考 https://blog.csdn.net/sinat_27184083/article/details/78224264

Mysql注入中的outfile、dumpfile、load_file函数详解(数据库服务器防攻击)参考:https://www.jb51.net/article/139858.htm

mysql 数据到 导入导出 总结的更多相关文章

  1. 完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0

    MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...

  2. mysql数据的导入导出

    2017-12-15       一. mysqldump工具基本用法,不适用于大数据备份   1. 备份所有数据库: mysqldump -u root -p --all-databases > ...

  3. MySQL数据表格导入导出

    一 初始数据(共6条记录) username userpwd age admin admin 18 root root 18 cat cat 17 dog dog 15 dog1 dog1 15 zh ...

  4. Linux下MySql数据的导入导出

    1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: mysqldump -u用戶名 -p密 ...

  5. Docker 中 MySQL 数据的导入导出

    Creating database dumps Most of the normal tools will work, although their usage might be a little c ...

  6. Mysql --学习:大量数据快速导入导出

    声明:此文供学习使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783 [实验背景] 项目中需要对数据库中一张表进行重新设 ...

  7. linux mysql 数据库操作导入导出 数据表导出导入

    linux mysql 数据库操作导入导出 数据表导出导入 1,数据库导入 mysql -uroot -p show databases; create database newdb; use 数据库 ...

  8. (oracle/mysql)启停,导入导出,DB字符集

    ==================================================================================== DB启动停止 ======== ...

  9. MySQL问题记录——导入导出权限设置

    MySQL问题记录——导入导出权限设置 摘要:本文主要记录了在使用MySQL的过程中导入导出权限设置时遇到的问题以及解决方案. 相关日志 [Note] --secure-file-priv is se ...

随机推荐

  1. [Qt扒手2] PyQt5 路径绘画例子

    [说明] 此例扒自 Qt 官网,原例是 C++ 代码,我把它改写成了 Python + PyQt5 版本. 有了前一个例子的成功,这个例子改写的非常之快.记得第一个例子花了我几天的时间,而这个例子只花 ...

  2. Oracle Database Link 连接数据库复制数据

    --1. 创建dblink连接 create database link mdm66 connect to lc019999 identified by aaaaaa using '10.24.12. ...

  3. pycharm如何回到过去某个时间

    在编写代码是,我们可能会写错代码,或者是误删某个文件,那么问题来了,如何回到过去的某个时间段,来弥补我们犯下的错呢? 1.如果是恢复删除的文件则右击之前文件所在的文件夹 2.右击文件夹的显示效果如图 ...

  4. tcp三次握手四次挥手那些事

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复AC ...

  5. 菜鸟vimer成长记——第2.2章、visual模式

    vi是没有可视模式的.然而大多数编辑软件都都是有可视模式.所以我猜测vim是几乎迫于无奈才有了visual模式. 个人建议,能不用就不用.这样能直接在头脑里处理好文本,锻炼文本处理能力,同时能转变过来 ...

  6. OpenGL学习笔记(1) 画一个三角形

    最近找实习有一丢丢蛋疼,沉迷鬼泣5,四周目通关,又不想写代码,写篇笔记复习一下,要好好学图形学啊 用OpenGL画一个三角形 项目的简介 记录一下跟着learnOpenGL学习的过程 笔记里的代码放在 ...

  7. 【坚持】Selenium+Python学习记录 DAY8

    2018/05/ 28 [来源:菜鸟教程](http://www.runoob.com/python3/python3-examples.html) 继续敲类相关的代码 #No.1 class peo ...

  8. 【神经网络】自编码聚类算法--DEC (Deep Embedded Clustering)

    1.算法描述 最近在做AutoEncoder的一些探索,看到2016年的一篇论文,虽然不是最新的,但是思路和方法值得学习.论文原文链接 http://proceedings.mlr.press/v48 ...

  9. NIO_通道之间传输数据

    通道之间传输数据 transferFrom() transferTo() @Test public void test3() throws IOException { FileChannel inCh ...

  10. JavaScript中数组中遍历的方法

    前言 最近看了好几篇总结数组中遍历方法的文章,然而"纸上得来终觉浅",决定此事自己干.于是小小总结,算是自己练手了. 各种数组遍历方法 数组中常用的遍历方法有四种,分别是: for ...