Linux下MySQL导入文件出错ERROR 1290 (HY000)

本文介绍了在Linux环境下使用MySQL 5.7.6及更高版本时遇到的CSV文件导入问题及其解决方案,包括如何处理因--secure-file-priv选项导致的权限限制错误,以及解决数据行不匹配的问题。

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

转载自http://blog.youkuaiyun.com/sinat_34260423/article/details/52791770

最近在进行linux 的MySQL操作时,发现导入文件一直出错,显示ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。

看了网上的很多办法都不成功,后来发现原来是因为在MySQL 5.7.6版本之后,导入文件只能在secure_file_priv指定的文件夹下
所以用show variables like '%secure%';命令显示文件目录

+--------------------------+-----------------------+
| Variable_name                 | Value                        |
+--------------------------+-----------------------+
| require_secure_transport | OFF                          |
| secure_auth                      | ON                           |
| secure_file_priv                 | /var/lib/mysql-files/|
+--------------------------+-----------------------+
3 rows in set (0.00 sec)

这样将导入文件放在 /var/lib/mysql-files/文件夹下,之后再从这里导入就可以了

load data infile '/var/lib/mysql-files/part.csv' into table PART fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';

如果显示ERROR 1261 (01000): Row 1 doesn't contain data for all columns
这个错误,是因为数据行不匹配,默认不能有空,用下列命令解决set sql_modul = 0;


另附:在linux下将csv文件导入mysql的方法:

    1.在网上找到用shell文件,一行行插入,这个方法效率极其低,且错误率很高。我要插入100万条记录的时候,耗时5个小时也没有完成,而且只插入了50多万条记录。

    2.进入linux系统下mysql命令行,然后执行use database(自己的数据库名称),然后执行

    load data infile '/var/lib/mysql-files/yourself.csv'
 into table t_your_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED by '"' 
ESCAPED by '"' LINES TERMINATED by '\r\n';

即可,一般来说没有错误。


如果导入文件的路径写错了,也会报 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement, 显示同样的错误。


还有如果要将数据导入表中指定的字段,方法如下:

load data infile '/var/lib/mysql-files/yourself.csv'
 into table t_your_table 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED by '"' 
ESCAPED by '"' LINES TERMINATED by '\r\n'
(col1, col2, col3, col5);


将字段放到最后即可。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值