您的位置:首页 > 数据库 > MySQL

MySQL LOAD DATA INFILE 导入 CSV 格式数据

2017-08-22 12:31 806 查看
主要介绍将 Neo4j 数据库中数据全部导入到 MySQL 数据库中,将 Neo4j 数据导出为 CSV 格式数据,然后再将 CSV 格式数据导入到 mysql 中。

前半部分,即 Neo4j 数据导出为 CSV 格式的具体过程可以参考:Neo4j 数据导出为 CSV 格式

这里主要介绍使用 LOAD DATA INFILE 方式将 CSV 格式的数据文件导入到 MySQL 中。

实验环境

Ubuntu 版本:ubuntu 14.04-desktop-amd64

MySQL版本:MySQL 5.5

mysql-workbench 版本:mysql-workbench-community-6.2.5-1ubu1404-amd64

登陆数据库

这里之所以将登陆数据库这么简单的步骤也单独列出来,是因为这里有一个关键的参数要加,因为这里将本地数据文件导入到本地数据库中,所以需要在登陆数据库时添加一个
--local-infile
选项,否则之后会报没有权限的错误。

完整的登陆语句为

mysql --local-infile -uroot -ppassword




创建数据库和表

创建所需导入的数据库和表,因为导入的数据都是英文格式,而且作为实验无特殊要求,所以这里以最简单的方式创建数据库和表。

创建数据库

这里设置要导入的数据库为
netowrk


CREATE DATABASE network;




创建表

这里创建与Neo4j 数据导出为 CSV 格式 导出的数据相对应的字段,部分数据为



为方便起见,除起止 id 设为
int
型,其余字段都设置为
VARCHAR(50)
,

具体执行为

mysql> CREATE TABLE out10(
-> start_id int,
-> nlabels VARCHAR(50),
-> nname VARCHAR(50),
-> nlocation VARCHAR(50),
-> nip VARCHAR(50),
-> nsize VARCHAR(50),
-> nzone VARCHAR(50),
-> nrack VARCHAR(50),
-> nram VARCHAR(50),
-> ndisk VARCHAR(50),
-> nid VARCHAR(50),
-> ncpu VARCHAR(50),
-> ntype VARCHAR(50),
-> nversions VARCHAR(50),
-> nports VARCHAR(50),
-> ndependencies VARCHAR(50),
-> rel_type VARCHAR(50),
-> end_id int,
-> mlables VARCHAR(50),
-> mname VARCHAR(50),
-> mlocation VARCHAR(50),
-> msize VARCHAR(50),
-> mrack VARCHAR(50),
-> mram VARCHAR(50),
-> mdisk VARCHAR(50),
-> mtype VARCHAR(50),
-> mversions VARCHAR(50),
-> mports VARCHAR(50),
-> mdependencies VARCHAR(50)
-> );




导入数据

将数据存放在目录为
/home/erik/Documents/out10-2.csv
,根据数据特点,只需执行如下操作

mysql> LOAD DATA LOCAL INFILE '/home/erik/Documents/out10-2.csv'
-> INTO TABLE out10
-> FIELDS TERMINATED BY ','
-> IGNORE 1 LINES
-> ;


`LOAD DATA LOCAL INFILE ‘/home/erik/Documents/out10-2.csv’,这里要加上“LOCAL”,然后后面跟本地文件路径,否则会报错。

FIELDS TERMINATED BY ','
是将要导入的数据以逗号为分割标志传入到 MySQL 数据库中,因为之前在 Excel 保存的 CSV 文件默认以逗号为分割。

IGNORE 1 LINES
这里忽略第一行,因为 CSV 文件第一行是标签,创建表时已经定义了相应的字段,这里不用输入到数据库中。



在 mysql-workbench 中查看,部分显示为





并且每个字段都可以正常查看





参考资料

MySQL :: MySQL 5.7 Reference Manual :: 13.2.6 LOAD DATA INFILE Syntax:

https://dev.mysql.com/doc/refman/5.7/en/load-data.html

MYSQL import data from csv using LOAD DATA INFILE - Stack Overflow

https://stackoverflow.com/questions/14127529/mysql-import-data-from-csv-using-load-data-infile

【MySQL实践经验】LOAD DATA INFILE 报错 ERROR 1148 (42000) 或 ERROR 1045 (28000)的解决办法 - slvher的专栏 - CSDN博客

http://blog.csdn.net/slvher/article/details/8768468
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql csv load-data