把10个G左右的csv文件导入mysql(只有一个csv文件,在本地)
工具:Navicat Premium 12&mysql workbench 8.0 CE
数据库:MySQL 8.0

navicat导入向导

导入方法不赘述
https://jingyan.baidu.com/article/59a015e375b25af795886558.html 之前数据库装在c盘的时候,大概一天多导入了九千多万条数据。
后来数据量太大,怕c盘不够用,一时冲动把mySQL从c盘卸了装到另外的盘了,不知道是真的变慢了还是我对速度的要求提高了,就觉得有些无法忍受这个速度,开始想别的办法。
总之就是虽然慢,但是是可以处理得了的。

mysql workbench 8.0 CE导入

导入的极慢,一晚上就导了几十万条

load data in file

上网搜到的招数

mysql快速导入多个大csv文件

CSV文件与MySQL表的导入、导出

注意要在导入前准备好数据库表,表的每列和csv文件的每列是对应的

use 数据库名;

可以在前边选择数据库,也可以在写表名的时候把数据库名写在前边

LOAD DATA LOCAL INFILE '文件路径'
    INTO TABLE 表名
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES;

报错,权限不够:Loading local data is disabled; this must be enabled on both the client and server sides
把mysql的bin加入到环境变量,进入cmd,

mysql --local-infile=1 -u 你的用户名 -p密码
set global local_infile = 1;

LOAD DATA LOCAL INFILE '文件路径'
    INTO TABLE 表名
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES;

可以导入了!

导入16.5G的大文件,一亿八千多万行数据,用了2小时20分多一点

mysql导入pgsql mysql导入大量csv数据_数据库

导出csv

之前16.5G的csv文件导入后不小心被我重写了,数据都丢了,只好从数据库再导出一份
还是从cmd进入数据库

mysql --local-infile=1 -u 你的用户名 -p密码
SELECT * FROM  数据库表名
	INTO OUTFILE '文件路径'
	FIELDS ENCLOSED BY '"'
	TERMINATED  BY ';'
	ESCAPED BY '"'
	LINES TERMINATED  BY '\n';

报错:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
应该就是因为mySQL对文件路径的目录没权限

执行命令:

SHOW VARIABLES LIKE "secure_file_priv";

可以看到mySQL有权限的目录,导入那个目录下即可
(也可以修改my.ini配置给它权限)

注意:我改了之后还是报错,是因为我文件路径用了单斜杠,改成双斜杠就好了。

很快就完成了

mysql导入pgsql mysql导入大量csv数据_mysql导入pgsql_02