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

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

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

流程如下:

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

新建数据库

进入导入向导

选择导入类型:

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

这里直接采取默认设置

同样默认

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

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

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

半小时,300w+个记录

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

二.使用SQL语句导入csv为表,速度快!

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

# Windows 中
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; # Linux 中
load data infile '..\\uploads\\test.csv'
into table sampleTableName
fields terminated by ',' optionally enclosed by '"' escaped by ','
lines terminated by '\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';

  

三、使用SQL语句将数据库表导出为csv文件

鉴于Navicat比较容易上手,所以这里只介绍一下如何用SQL语句将数据库表导出为csv文件:

用select语句选择需要导出的字段、表,说明其他附加条件(例如用where子句,还可以进行排序),然后说明导出文件的路径和文件名,注意,如果是MySQL是在 secure-file-priv 选项下运行,则必须将路径调整为上文说过的

secure-file-priv路径,如果不知道,就用show variables like查看,否则报错Error 1209

当然,这样导出要求导出的文件不存在,否则报错 Error 1086

示例如下:

select * from newdb2.dataset where vendor = 'xiaomi' order by time
into outfile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\test.csv'
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\r\n';

 此示例用到了where 子句和order by 排序,应该够用了

那就这样~see you~

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

  1. Oracle使用——数据泵导入导出数据库——impdp/expdp使用

    使用前提 EXPDP和IMPDP只可以在Oracle服务端使用. EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件:EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文 ...

  2. DB2导入导出数据库数据

    导出数据库中数据 在db2cmd命令下生成建库脚本(-z指定模式名) db2look -d BBS -z db2admin -u db2admin -e -o bbs.sql 在db2cmd命令下导出 ...

  3. 导入CSV格式的数据

    导入CSV格式的数据 (参见http://dev.mysql.com/doc/refman/5.6/en/load-data.html) 1.数据库表(st_pptn_r) CREATE TABLE ...

  4. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

  5. NodeJs之EXCEL文件导入导出MongoDB数据库数据

    NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...

  6. CSV文件导入导出MySQL

    使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...

  7. NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。

    App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  8. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

  9. Laravel Excel 实现 Excel-CSV 文件导入导出功能

    Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...

随机推荐

  1. HTML5<canvas>标签:使用canvas元素在网页上绘制渐变和图像(2)

    详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canva ...

  2. ASP.NET页面之间传值Application(5)

    Application对象的作用范围是整个全局,也就是说对所有用户都有效.它在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所 以可以在不同页面中对它进行存取.它和Session变量的区别 ...

  3. P3539 [POI2012]ROZ-Fibonacci Representation

    题目描述 The Fibonacci sequence is a sequence of integers, called Fibonacci numbers, defined as follows: ...

  4. BZOJ4602: [Sdoi2016]齿轮 DFS 逆元

    这道题就是一个DFS,有一篇奶牛题几乎一样.但是这道题卡精度. 这道题网上的另一篇题解是有问题的.取对数这种方法可以被轻松卡.比如1e18 与 (1e9-1)*(1e9+1)取对数根本无法保证不被卡精 ...

  5. [CF1041E]Tree Reconstruction

    题目大意:有一棵树,现在给你每条树边被去掉时,形成的两个联通块中点的最大的编号分别是多少,问满足条件的树存不存在,存在输出方案 题解:一条边的两个编号中较大的一个一定是$n$,否则无解. 开始构造这棵 ...

  6. [codeforces] 633C Spy Syndrome 2

    原题 Trie树+dp 首先,我们可以简单的想到一种dp方式,就是如果这一段可以匹配并且可以与前一段接上,那么更新dp[i]为当前字符串的编号,然后倒推就可以得到答案. 但是,显然我们不能O(m)比较 ...

  7. [bzoj] 1257 余数之和sum || 数论

    原题 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值,其中k mod i表示k除以i的余数. \(\sum^n_{i=1} ...

  8. BZOJ1875: [SDOI2009]HH去散步 图上边矩乘

    这道题十分的坑…… 我作为一只连矩乘都不太会的渣渣看到这道题就只能神搜了….. 首先说一下普通的矩乘求方案,就是高出邻接矩阵然后一顿快速幂….. 矩乘一般就是一些秘制递推….. 再说一下这道题,我们可 ...

  9. git使用笔记(五)打标签

    By francis_hao    Nov 19,2016 当一个项目commit了若干次到了一个可以发布版本的时候一般会给当前的分支状态打一个标签,就像我们常常见到的V1.0之类的. Git 使用的 ...

  10. Spring Boot(一)

    1.注解  @EnableAutoConfiguration 官方文档:The @EnableAutoConfiguration annotation is often placed on your ...