将csv的数据导入mysql
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将csv的数据导⼊mysql
⼿头有⼀份8MB的CSV⽂件需要分析,对于程序员来说,还有⽐在数据库⾥分析更愉快的事情吗?
所以让我们把CSV导⼊MYSQL吧。
⼀、⾸先按照⽂件列数创建相应的SQL表
例如:
DROP TABLE IF EXISTS `cdr`;
CREATE TABLE `cdr` (
`direction` varchar(255) DEFAULT NULL,
`caller` varchar(255) DEFAULT NULL,
`callee` varchar(255) DEFAULT NULL,
`context` varchar(255) DEFAULT NULL,
`start_stamp` timestamp NULL DEFAULT NULL,
`answer_stamp` varchar(255) DEFAULT NULL,
`end_stamp` timestamp NULL DEFAULT NULL,
`duration` int(255) DEFAULT NULL,
`billsec` int(255) DEFAULT NULL,
`hangup_cause` varchar(255) DEFAULT NULL,
`uuid` varchar(255) DEFAULT NULL,
`bleg_uuid` varchar(255) DEFAULT NULL,
`accountcode` varchar(255) DEFAULT NULL,
`read_codec` varchar(255) DEFAULT NULL,
`write_codec` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
⼆、导⼊命令
load data infile '需要导⼊的⽂件全名' into table 将要导⼊的数据库表名 fields terminated by '列的分隔符' optionally enclosed by '"' escaped by '"' lines terminated by '回车换⾏符';实例:
load data infile 'D:/Master.csv' into table cdr fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
注意这个结束换⾏符,如果是linux下⽣成的⽂件,就是'\n'结尾。
三、报错:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
四、原因
show variables like 'secure%';
看到这个:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_auth | ON |
| secure_file_priv | NULL |
+------------------+-------+
就是secure_file_priv没有正确的配置导致的报错。
五、解决问题
1. 找到my.ini⽂件
2. 添加配置
secure_file_priv = D:/
六、再次执⾏导⼊(⼆),顺利的话,可以去数据库⾥徜徉了。