使用mysql load data infile导入csv数据,总是报错 8C

问题:
命令行登录mysql,使用load data infile命令导入csv数据报错:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement;如图:
图片说明

我已经在my.ini配置文件里写上了secure-file-priv参数,如图:
图片说明

为什么还是出错呢?请知道的各位解答一下,多谢了!

系统环境:win10,mysql5.7.16

全部家当8个金币求解:-)

0

6个回答

把secure-file-priv那一行在配置文件中注释

0
asd_op
水手008 感谢oyljerry的回答
2 年多之前 回复

注释掉不行,出同样的错误。

下面是通过show命令显示的变量值:
mysql> show variables like '%secure_file_priv%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_file_priv | NULL |
+------------------+-------+
1 row in set, 1 warning (0.00 sec)

0

问题找到了,下面解答:

出现错误的写法:load data infile 'C:\imi\dev\mysql-5.7.16-winx64\bin\tmp\ds-20170405.csv'

1:load data infile 'C:\imi\dev\mysql-5.7.16-winx64\bin\tmp\ds-20170405.csv'
2:load data infile 'C:/imi/dev/mysql-5.7.16-winx64/bin/tmp/ds-20170405.csv'
1,2这两种写法均能导入。

分析,大家仔细观察在我的文件路径中有一个tmp文件夹,如果写成 'C:\imi\dev\mysql-5.7.16-winx64\bin\tmp\ds-20170405.csv'这种形式,load data infile命令会把这个路径字符串中的]"\tmp"中的\t作为tab,所以实际上传给mysql的路径是C:\imi\dev\mysql-5.7.16-winx64\bin(这里是一个tab空格)mp\ds-20170405.csv,很明显这个路径不存在且不是配置里的路径,所以总是报The MySQL server is running with the --secure-file-priv option so it cannot execute this statement错误。
为了避免这种情况需要使用双斜线进行转义:1:load data infile 'C:\imi\dev\mysql-5.7.16-winx64\bin\tmp\ds-20170405.csv';
或者使用linux路径的正斜线写法:1:load data infile 'C:\imi\dev\mysql-5.7.16-winx64\bin\tmp\ds-20170405.csv'

0
asd_op
水手008 load data infile 'C:\\imi\\dev\\mysql-5.7.16-winx64\\bin\\tmp\\ds-20170405.csv'
2 年多之前 回复

更正:1中写法应该是用两个反斜线进行转义:load data infile 'C:\imi\dev\mysql-5.7.16-winx64\bin\tmp\ds-20170405.csv'

0

我靠,csdn又把两个反斜线变成一个了:

更正:1中写法应该是用两个反斜线进行转义:load data infile 'C:\\imi\\dev\\mysql-5.7.16-winx64\\bin\\tmp\\ds-20170405.csv'

0

给个图:

图片说明

图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
load data 导入csv表格到mysql中错误收集
快速定位错误目录: 目录 错误一:ERROR 1300 (HY000): Invalid utf8 character string: '' 错误二:ERROR 1265 (01000): Data truncated for column '商品重量' at row 2 错误三:ERROR 1366 (HY000): Incorrect integer value: '' for col...
MySQL _LOAD DATA 导入 csv 文件到数据库表操作日志
1.说明LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串。标准语法:LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGN
【数据库】load data infile上亿条的海量数据导入mysql的那些事
因为做股票金融的,每天产生的数据量是很大的,一个月几十亿的交易记录,也常有出现,特别是今年大跌之前大涨那会。 作为程序员,问题来了,有时需要将一些并不是特别符合规范的csv文件导入数据库中,而且每个文件有十几万行,而这样的文件几万个,于是几十亿的记录如何导入数据库呢?很多想着常用的方法,就是将csv文件读出来,然后一条条插到数据库,或者批量插到数据库,或者开个多线程,然而,花费的时间必须是几十天
LOAD DATA INFILE语句导入数据进入MySQL的一些注意事项
可以用以下语句导入CSV或其他格式数据进入MySQL数据库,LOAD DATA LOCAL INFILE "C:\\wamp\\apps\\litigationinfo.csv" REPLACE INTO TABLE litigationinfo CHARACTER SET utf8 FIELDS TERMINATED BY "," ENCLOSED BY "" LINES TERMINA
使用load data local infile 导入文本文件到MySQL乱码问题
命令: mysql -h localhost -uroot -proot test -e "load data local infile '/Users/xiaomai/workspace/python/pachong/de3.txt' into table dz_ershoufang  character set 'utf8' fields terminated by '\t'" 
Java中实现大批量导入数据到MySQL——LOAD DATA LOCAL INFILE
Mysql load data的使用 数据库中,最常见的写入数据方式是通过SQL INSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量INSERT语句。 在实际中,常常会遇到两类问题:一类是数据导入,比如从word、excel表格或者txt文档导入数据(这些数据一般来自于非技术人员通过OFFICE工具录入的文档);一
利用LOAD DATA将csv文件中的数据导入MySQL
先贴代码:#coding=utf-8import csv, os, re import MySQLdb_PATH = 'D:/bike_sharing_data/trip_data/trip_history/' _TABLE_NAME = 'trip_history_raw'filelist = os.listdir(_PATH)conn = MySQLdb.connect( host='l
mysql 出错 1300和 1366 出错解决方法记录 百万级数据快速导入记录
出错: ERROR 1300 (HY000): Invalid utf8 character string ” load data infile 'f:/Mysql/data/song.sql' into table music character set utf8 fields terminated by "|||" (mid,name,sid,album); 不管term...
mysql load data infile 指定文件中的字段导入
通过把输入值赋予一个用户变量,同时不把变量赋予表中的列,来丢弃此输入值: LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, @dummy, column2, @dummy, column3);   这样file.txt中的第二列和第四列不被导入到t1表中 ...
Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现
大家都知道当插入大批量数据MySQL的时候,MySQL使用load data local infile 从文件中导入数据比insert语句要快,MySQL文档上说要快20倍左右。但是这个方法有个缺点,就是导入数据之前,必须要有文件,也就是说从文件中导入。这样就需要去写文件,以及文件删除等维护。某些情况下,比如数据源并发的话,还会出现写文件并发问题,很难处理。那么有没有什么办法,可以达到同样的效率...
mysql LOAD DATA LOCAL INFILE导入到数据库后第一行第一列数据为0的问题
是因为数据文件以有BOM的UTF-8保存的,改为无BOM的UTF-8格式保存即可。 原因:有BOM的会比无BOM的多出3个字节,windows系统可以自动识别处理,unix系统无法识别BOM多出来的3个字节,导致解析错误。 参考:http://www.cnblogs.com/lfire/archive/2012/11/20/2778939.html
Mysql中的load语句对null的处理
Load语法 LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY '\t'] [OPTIONALLY] ENCLO...
[MySQL] 导入数据load data infile用法整理
有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间。 LOAD DATA INFILE 语句以很高的速度从一个文本文件中读取行到一个表中。文件名必须是一个文字字符串。 1 命令load data local infile的设置 应当在/etc/...
mycat1.6使用案例----load data file使用示例(ER分片字表数据导入)
本文展示load data infile在mycat下的使用经验,根据错误提示完成mycat数据导入,并自动分片路由。
mysql导入数据load data infile注意事项
注意注意: 1.在远程客户端使用load data infile的话,需要添加FILE权限。 2.如果是导入有中文的数据,我的mysql 设置的utf8 字符集,所以你要导入的xxx.txt 文件也要保存utf-8的字符集。 3.在远程客户端(需要添加选项:--local-infile=1)导入远程客户端文本到MySQL,需指定LOCAL(默认就是ignore),加ignore选项会放弃
mysql使用loadfile方法将csv数据导入数据库
load data infile '/data/test11.csv' into table user fields terminated by ',' lines terminated by '|';
MySQL load data 快速导入大批量数据
MySQL load data 语句能快速将一个文本文件的内容导入到对应的数据库表中
解决MySQL使用LOAD导入中文数据乱码的问题
假设将文本employee.txt中的数据导入到表EMPLOYEE中 出现乱码的SQL语句 LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE; 解决方法,在后面添加character set utf8 LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE ...
Shell 脚本通过 load data 导入MySQL数据库乱码 解决方法
整体思路1、数据库所有编码方式转为utf8 2、导入的文件编码转为utf8 (注意文件内容也是utf8格式,别只是文件编码换了utf8,文件通过utf8格式打开还是乱码的,这样的话你导入到数据库也是乱码的)3、系统环境编码设置为utf8过程:一、设置数据库编码1、设置数据库服务器编码我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来我们可以通过命令查看数据库当前编码:        m...
mybatis使用load data local infile实现大批量导入数据到mysql数据库
背景:项目框架为:dubbo+zookeeper+ssm    数据库为mysql最近有个新的需求,要在代码里实现往数据库插入大批量数据,每次插入的数据量从10万~50万条不等,而且每条数据有80多个字段,大概估算了一下,一条数据大小差不多是1kb,那么每次插入的数据量大小应该在100M~500M之间。这个数据量还是很大的。想来想去,我就先按照从开发到调试所碰到问题的顺序来写好了,到后面我再贴出代...
Mycat使用load data infile批量导入数据时出现反斜杠消失问题
Mysql数据库数据量增大,采用Mycat中间件对数据进行分库分表保存。但由于出现问题时已存在老数据,故采用load data infile对数据进行迁移。     迁移过程中发现带有反斜杠的字段数据反斜杠消失了,后通过百度发现load data infile方法中默认缺省'\',于是将默认缺省修改为其它不出现在数据当中的字符即可。
mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)
首先将ids_app_installed_top_1000_3_ratio_wrap_m_top5000W.txt放入到数据库数据目录/var/local/mysql/data/${db_name}/ 下,并确保导入用户拥有这个txt文件的权限,否则会报Error 13错误1.${table_name}换myisam,我们的场景对事务没啥要求2.导入前修改参数和禁止索引更新mysql> SET S
解决Mysql导入csv中空值变为0的问题:导入数据时设定格式
网上许多优化教程以及官方均认为(http://www.jb51.net/article/24392.htm),空值置为0有利于节省空间,实际上Mysql也是这么做的,在导入数值型字段时,默认将空值置为0。 但实际中,数据本身的空值也是包含信息的,与0值并不一样。举个栗子,有一组数据: null, null, 1, 2, 3 求均值时应该为(1+2+3)/3=2,如果在导入数据后其均值则会变为(
LOAD DATA INFILE时报1045错误如何处理
1.先检查参数local_infile mysql> show variables like 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile  | ON    | +---------------+-------+
MySQL导入csv、excel或者sql文件
1.导入csv文件使用如下命令:load data infile "your csv file path" into table [tablename] fields terminated by '\t'上面的csv文件以’\t’作为分割符,需要用双引号或者单引号括起来。2.导入excel文件无需指定分割符。直接使用下面的命令:load data infile "your excel file pa
mysql数据导入Load时,出现编码错误。
mysql数据导入: LOAD DATA INFILE '/var/lib/mysql-files/bash/yes' INTO TABLE inner_outer_hotel_gx_tb FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (inner_hotel_id,outer_hotel_id,outer_channel_id,
每天进步一点点——load data infile的相关优化
对MyISAM引擎          通过DISABLE KEYS和ENABLE KEYS用来打开或者关闭唯一索引的更新,在导入大量数据到一个非空的MyISAM表时,通过设置这两条命令可以提高导入效率。但是导入一个空的MyISAM表,就不需要此设置: ALTER TABLE 表名 DISABLE KEYS; loading the data ALTER TABLE 表名 ENABLE KE
MySQL LOAD DATA INFILE - 加载没有主键的文件实战
首先告诉大家关于“MySQL LOAD DATA INFILE - 加载没有主键的文件”是可以操作的,接下来就来实战一把 表imagecode结构可以看到有3列,其中id是自增列。 drop table `imagecode` ; create table `imagecode` ( `id` int auto_increment, `url` text, `code` ...
解决:MySQL Load Data数据丢失问题
MySQL 5.7 MacOS Sirrea 10.12.1前言 很简单,我得文件里面20w数据,导入MySQL后只剩下16w条数据,无Deleted无Skipped 排查方法 既然数据丢失了,那把成表后的数据全部导出,然后和原始的数据进行对比验证 select * from db.table INTO OUTFILE '/usr/local/mysql-5.7.18-macos10.1
LOAD DATA导入csv
使用LOAD DATA LOCAL INFILE函数导入csv文件表格数据到数据库
Mysql载入大量数据(load data infile)的优化过程
如何加快MySQL导入数据的速度
php中使用load data local infile语句时解决的问题
最近开发中须将csv文件导入到mysql中,听说用load data local infile导入效率较高,所以放弃使用fgetcsv等方法,而且这个方法不用我去open这个csv文件。但是按照用法在phpstorm+wamp环境中试了半天都不行,之前怀疑我的参数写错了,又排除了字段匹配、字符编码兼容等问题, 我的sql语句如下: load data local infile $csv I
mysql从csv文件导入数据时提示int类型出现' '(空字符串)
最新在导入一些历史数据做数据分析时,发现出现int类型出现' '(空字符串)的错误 问了度娘也没结果,到stack overflow 问了下外国朋友成功解决囖, 这样的问题应该很少见,所以我也就不做过多的解释,直接看mysql语句(红色部分已经标出) #新建表 drop table if exists src_estate_building_info; create table 
MySQL——load语句导入数据
一、使用load语句导入数据。 最近在看有关SQL常用优化的方案,涉及到使用load语句导入大量数据到数据库,按照官方的说法:使用load语句要比使用insert语句将近快20倍的速度,平时开发中很少涉及导入大量数据,所以,平时都是使用insert语句导入。这里对load命令进行简单的总结。 进入MySQL后,使用命令:load data local infile 'S:/tab_user.t
使用load inpath导入数据时出现NULL原因解析
原因介绍 1.在把本地数据load到hive中的表时,若出现数据位NULL,是因为没有指定列分隔符。 2.由于hive默认的分隔符是/u0001(Ctrl+A),为了平滑迁移,需要在创建表格时指定数据的分割符号解决方法 1.创建表时指定使用’\t’(Tab)作为分隔符 create table users(id int, name string) row format delimited f
mysql load data部分字段的正确写法
在日常运维中,会经常遇到将文件中数据导入到数据库中,如果是.sql文件,直接采用source方式即可;如果是.csv、.txt文件,可以采用 load data 方式。这两种方式都十分熟悉,这里说一种特殊情况: 需求很简单,有如下txt文件需要将数据导入库表对应字段中文件已转换到unix,字符类型utf8,跟数据库一致,无乱码Shell> head day.txt 20170601,1420...
将csv导入到mysql数据表中
看了网上的很多代码,试了很多都没用。所以决定自己写个。 实例:load data local infile "E:/book1.csv" into table `monster`.`c_monstermodel` character set GBK fields terminated by ',' enclosed by '"' lines terminated by '\r\n'; "E:/
mysql导入数据load data infile用法整理
#基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields [terminated by't'] [OPTIONALLY] enclosed by ''] [escaped by'\' ]] [lines terminated by'n...
【Hive】load数据,跳过第一行
一、语句 在建表时,进行如下参数设置。 tblproperties( "skip.header.line.count"="n", --跳过文件行首n行 "skip.footer.line.count"="n" --跳过文件行尾n行 ) 二、举例 create table test ( id int commet 'id', name string commet '姓名' )...
oracle通过load data 将数据导入表中通过存储过程进行批量处理
说明:虽然没图,但文字表述很清楚,自己做过的项目留着备用(这只是初版,比较繁琐,但很明确) 准备工作做完之后,后期可直接使用。如后期excel数据有变更,只需改动对应的部分即可,不涉及改动的可直接使用。 实际操作步骤 依照excel数据模版格式准备好建表语句,将中间过渡表在对应12家村行数据库中分别建立。(二步骤中的第2小步) 将excel补录数据转换成txt文件导入中间过渡表。(二步骤中...