经验:使用mysqlimport快速导入csv文件

mysqlimport 工具实际上也只是“load data infile”命令的一个包装实现。
常用选项:
--fields-terminated-by=字符串:设置字符串为字段之间的分隔符,可以为单个或多个字符。默认值为制表符“\t”。
-L, --local:表示从客户端任意路径读取文件导入表中,未设置该选项时,默认只从datadir下同名数据库目录下读取文件导入
--ignore-lines=n:表示可以忽略前n行。
-l, --lock-tables:写入时锁定所有表
-p, --password[=name]:指定用户密码
-u, --user=name:指定登入MySQL用户名
-h, --host=name:指定远程连接的服务器
-c, --columns=name:往表里导入指定字段,如:--columns='Name,Age,Gender'
-C, --compress:在客户端和服务器之间启用压缩传递所有信息


格式:
mysqlimport -h服务器IP -P端口  -u用户名 -p密码 数据库名  --fields-terminated-by=','  数据.csv --columns='列1,列2,列3' --local

命令:

mysqlimport -h127.0.0.1 -P3306  -uroot -pX123456 app_user  --fields-terminated-by=',' t1.csv --columns='a,b,c' --local

 返回:

mysqlimport: [Warning] Using a password on the command line interface can be insecure.
app_user.t1: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0

 

如:出现“3948"号错误则:
set global local_infile = 1;

然后:

show variables like 'local_infile';

 

建表:

CREATE TABLE `t1` (
`a` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`b` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`c` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

 

数据.csv:

a,b,c
11,22,33
44,55,66

 

posted @ 2021-12-11 19:36  xiaoyongdata  阅读(1300)  评论(0编辑  收藏  举报