将linux中.csv文件导入到mysql的表中

本文详细描述了如何将CSV文件导入MySQL数据库,包括创建表、设置编码、处理secure-file-priv选项、解决中文乱码和访问权限问题,以及常见错误的诊断和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一般情况下的流程

1.创建一个csv文件(我的是在~/test.csv)

2.选择数据库(我的是kk),在数据库中创建对应表(最好别设置主键和限制什么的,csv数据不一定干净)

3.进入mysql,选择数据库(我的是kk),然后使用sql命令导入

 4.查看导入的数据

常见问题


一般情况下的流程

1.创建一个csv文件(我的是在~/test.csv)

2.选择数据库(我的是kk),在数据库中创建对应表(最好别设置主键和限制什么的,csv数据不一定干净)

create table student(
    number int ,
    name  varchar(10),
     password varchar(10)
    );
 

3.进入mysql,选择数据库(我的是kk),然后使用sql命令导入

load data local infile '~/test.csv' # 文件路径

into table student             # 表名

character set utf8                 # 编码

fields terminated by ','           # 分隔符

lines terminated by '\r\n'         # 换行符,windows下是\r\n

ignore 1 lines;                    # 忽略第一行,因为表头已建好

 4.查看导入的数据

常见问题

1: 导入数据时

 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this sl tatement

分析: MySQL正在执行secure-file-priv这个玩意

解决:

1:show variables like '%secure%';查看 secure-file-priv 当前的值是什么;

如果这里是NULL或者具体路径,应该改为空的(有人说换一个地址也行)

2: 在mysql的配置文件my.ini中添加如下行secure_file_priv=‘’

(我并没有找到mysql中的my.ini文件,我修改的是/etc/my.cnf,如下

3:之后重启mysql服务。

sudo service mysqld restart

2:包含中文的csv文件导入到mysql中乱码(设置mysql编码没反应) 

更新:如果导入没有数据也可以使用这个(亲测)

解决:

1.重新设置数据库的编码,然后重新建表(我最开始只是重新设置表的编码,没用)

alter database test(自己数据库名字) character set utf8;

3:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)‘ 

解决:

4:只能导入部分数据,看这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值