首页 > 数据库技术 > 详细

将csv格式的数据文件导入/导出数据库+添加新的字段

时间:2016-08-31 07:09:11      阅读:245      评论:0      收藏:0      [点我收藏+]

最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题。

因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法:

一.简单,但是稍慢的方法,使用Navicat for MySQL,傻瓜式导入数据库:

流程如下:

安装完成并配置好连接后界面如下:

 

新建数据库

技术分享

技术分享

 

进入导入向导

技术分享

选择导入类型:

技术分享

然后选择文件作为数据源,这里是我之前抓好的包,300w+条抓包记录

技术分享

 

这里直接采取默认设置

技术分享

 

同样默认

技术分享

 

自己设置了下表明,新建了表

技术分享

 

这里是程序根据文件内容进行的猜测,注意要修改下数据类型,并根据需要做相应调整,这里有点不太好,目前只找到了通过方向键“下”来添加,没有其他操作,如果增加的数据记录没有填写,则自动删除。

技术分享

 

我将包的信息缩减到只用我需要的,这样抓取的信息就从1G锐减到200+M

技术分享

 半小时,300w+个记录

这慢的,谁用谁知道~~~~

 

二.使用SQL语句进行导入,速度快!

使用SQL语句可以快速实现大量数据导入数据库的效果。示例如下:

load data infile ..\\uploads\\test.csv
into table sampleTableName
fields terminated by ,  optionally enclosed by " escaped by ‘,   
lines terminated by \r\n ignore 1 lines;

解释:

  1. load data infile + 文件路径:这里使用了相对路径,我的机子上安装的MySQL在‘C:\ProgramData\MySQL\MySQL Server 5.7‘中,一般情况下,csv文件中第一行一般是每列属性的名称,因此在导入数据库时应省略第一行
  2. 句子中sampleTableName应替换为对应的表的名称
  3. csv文件中,域一般用逗号分隔,域的字段值一般用一对双引号包裹,换行一般用‘\r\n’(windows下),因此我发现一般escaped by+逗号与lines terminated by+‘\r\n‘有对应关系,如果用escaped by """,即引号分隔,则只有将lines terminated by改成‘\n‘才能导入,并且此时不能ignore 1 lines;

 

常见错误:

Error Code 1290:

我机子上安装的是MySQL5.7,

MySQL5.7默认运行的状态是:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

 这是因为需要导入的文件不再MySQL认为的安全文件夹内,因此MySQL拒绝了导入操作。

使用如下语句可看到MySQL当前认为的安全文件夹,将文件放入文件夹内即可

SHOW VARIABLES LIKE secure_file_priv;

 

将csv格式的数据文件导入/导出数据库+添加新的字段

原文:http://www.cnblogs.com/luruiyuan/p/5713273.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!