mysql遇到load data导入文件数据出现1290错误的解决方案

错误出现情景

  在cmd中使用mysql命令,学生信息表添加数据。使用load data方式简单批量导入数据。

  准备好文本数据: xueshengxinxi.txt 文件  数据之间以tab键进行分割

  执行 “load data infile 文本数据路径  into table tab_load_data”  弹出错误。

#load data (载入数据)语法,要载入数据如下:
 1 张三   男  江西 1
 2 李四   男  四川 2
 3 王五   男  上海 1
 4 赵六   女  湖北 3
 5 孙七   女  湖北 3
 6 周八   男  湖南 1 

#测试数据表
 create table tab_load_data (
  id int auto_increment primary key,
  name varchar(10),
  sex enum('男','女'),
  native varchar(10),
  f5 int
 );

错误描述

  使用load data 导入文件数据总是弹出错误(Error 1290.....)如下:

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

    

解决思路(过程)

  1) 既然错误提示说明运行了secure-file-priv这个选项,不能执行load服务,那就找到MYSQL的配置文件"my.ini" 中该配置项。

  2) 配置前,先关闭mysql服务

  3) 打开my.ini,搜索关键字“secure-file-priv”找到这个选项后,直接注释掉这个选项,保存后,启动MYSQL服务

      

  4) 结果还是一样的错误。说明注释没有效果。这是怎么回事了?

    执行命令 “show variables like '%secure%'”发现原来我注释掉后,secure-file-priv的值为NULL,说明禁止导入导出。        

    这说明注释掉是不行的。不删配置文件条目,那只好修改目录好了。

  5)修改路径,执行命令 “show variables like '%secure%'” 查看 , 重启MYSQL。

    
    

  6)再执行load data, 执行成功

  

  更复杂的load用法可以查看mysql手册。 到此,该问题解决。

三, 小结说明

  从本错误中吸取:

  1) load data : 可以从一个外部的记事本文件中导入数据到某个表中。

    该记事本中的数据通常要求“比较整齐”,一行文本对应一行数据,一行中用某种字符(如用tab符)来分割一个一个字段的值

  2) secure-file-priv这个参数用来限制数据导入和导出操作的效果。

    如:执行LOAD,SELECT...INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要file权限。

  3)如果 secure-file-priv这个参数设为一个目录名,MYSQL服务只允许这个目录中执行文件的导入和导出操作。

    这个目录必须存在,MYSQL服务不会创建它。

  4) 如果secure-file-priv这个参数为NULL,MYSQL服务会禁止导入和导出操作。

(0)

相关推荐

  • mysql load data infile 的用法(40w数据 用了3-5秒导进mysql)

    如果是导入有中文的数据,我的mysql 设置的utf8 字符集,所以你要导入的xxx.txt 文件也要保存utf-8的字符集,命令 load data infile "d:/Websites/Sxxxx/test1.txt" ignore into table `names` fields terminated by ',' enclosed by '"'; 不知道用replace 这个关键字的话,还是会乱码..不同.等高手回答. 在详细的介绍,推荐大家去看mysql手册去吧

  • MySQL中使用load data命令实现数据导入的方法

    使用方式如下: 复制代码 代码如下: mysql>load data local infile "D:/ab.txt" into table mytbl(name,age); 使用上述的命令就可以将D:/ab.txt文件的内容导入到表mytbl中,其中name和age是表mytbl的字段,对应ab.txt文件中每行的数据.如果编译安装mysql时没有指定 –enable-local-infile,那么在使用上述命令时会报如下错误: 复制代码 代码如下: ERROR 1148 (4

  • mysql 的load data infile

    LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中.如果指定LOCAL关键词,从客户主机读文件.如果LOCAL没指定,文件必须位于服务器上.(LOCAL在MySQL3.22.6或以后版本中可用.) 为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取.另外,为了对服务器上文件使用LOAD DATA INFILE,在服务器主机上你必须有file的权限. 头一回用load data infile,以为只是把插入语句写到一个文件里,然后用loa

  • mysql Load Data InFile 的用法

    首先创建一个表 Use Test; Create Table TableTest( `ID` mediumint(8) default '0', `Name` varchar(100) default '' ) TYPE=MyISAM; 向数据表导入数据 Load Data InFile 'C:/Data.txt' Into Table `TableTest` 常用如下: Load Data InFile 'C:/Data.txt' Into Table `TableTest` Lines Te

  • MySQL中由load data语句引起死锁的解决案例

    一个线上项目报的死锁,简要说明一下产生原因.处理方案和相关的一些点. 1.背景 这是一个类似数据分析的项目,数据完全通过LOAD DATA语句导入一个InnoDB表中.为方便描述,表结构简化为如下: Create table tb(id int primary key auto_increment, c int not null) engine=innodb; 导入数据的语句对应为 Load data infile 'data1.csv' into table tb; Load data inf

  • mysql中Load Data记录换行问题的解决方法

    问题是这样的: 表persons有两个字段: id和name文本文档persons.txt中内容(其中每行字段之间用tab分割):1    Bush2    Carter3    Bush 在mysql命令行下使用 load data local infile "persons.txt" into table persons 导入数据到persons表中. 导入后查看persons表的数据,与persons.txt的内容一致.但是使用语句select distinct name fro

  • Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL

    Mysql load data的使用 数据库中,最常见的写入数据方式是通过SQL INSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量INSERT语句. 在实际中,常常会遇到两类问题:一类是数据导入,比如从word.excel表格或者txt文档导入数据(这些数据一般来自于非技术人员通过OFFICE工具录入的文档):一类数据交换,比如从MySQL.Oracle.DB2数据库之间的数据交换. 这其中就面临一个问题:数据库SQL脚本有差异,

  • mysql中的Load data的使用方法

    测试把txt文件导入至mysql数据库中: table: txt文件:D:/data.txt (txt文件下载) txt中使用 '\N' 描述null值. 导入数据: 复制代码 代码如下: load data local infile 'D:/data.txt' into table pet lines terminated by '\r\n' ignore 1 lines; 应用mysql版本:

  • mysql遇到load data导入文件数据出现1290错误的解决方案

    错误出现情景 在cmd中使用mysql命令,学生信息表添加数据.使用load data方式简单批量导入数据. 准备好文本数据: xueshengxinxi.txt 文件  数据之间以tab键进行分割 执行 "load data infile 文本数据路径  into table tab_load_data"  弹出错误. #load data (载入数据)语法,要载入数据如下: 1 张三 男 江西 1 2 李四 男 四川 2 3 王五 男 上海 1 4 赵六 女 湖北 3 5 孙七 女

  • MySQL数据库 Load Data 多种用法

    目录 MySQL Load Data 的多种用法 一.LOAD 基本背景 二.LOAD 基础参数 三.LOAD 示例数据及示例表结构 四.LOAD 场景示例 五.LOAD 总结 MySQL Load Data 的多种用法 一.LOAD 基本背景 我们在数据库运维过程中难免会涉及到需要对文本数据进行处理,并导入到数据库中,本文整理了一些导入导出时常见的场景进行示例演示. 二.LOAD 基础参数 文章后续示例均使用以下命令导出的 csv 格式样例数据(以 , 逗号做分隔符,以 " 双引号作为界定符)

  • MySQL数据库迁移快速导出导入大量数据

    数据库迁移是我们经常可遇到的问题,对于少量的数据,迁移基本上不会有什么问题.生产环境中,有以下情况需要做迁移工作: 磁盘空间不够.比如一些老项目,选用的机型并不一定适用于数据库.随着时间的推移,硬盘很有可能出现短缺: 业务出现瓶颈.比如项目中采用单机承担所有的读写业务,业务压力增大,不堪重负.如果 IO 压力在可接受的范围,会采用读写分离方案: 机器出现瓶颈.机器出现瓶颈主要在磁盘 IO 能力.内存.CPU,此时除了针对瓶颈做一些优化以外,选择迁移是不错的方案: 项目改造.某些项目的数据库存在跨

  • Shell脚本导入导出数据的项目示例

    目录 1. 介绍 2. 导入数据到db2 3. 导出db2数据 4. 导入数据到mysql 5. 导出mysql数据 6. Java程序调用shell脚本 7. 遇到的问题 1. 介绍 在工作中 , 很多场景都会涉及到db数据的导入导出, 为了不影响正常业务, 一般会选择在夜间交易访问量小的时候定时任务跑批进行数据的导入导出. 我们公司, 由于分为了不同区域的开发中心, 应用系统也比较多, 所以业务相互关联的各系统间的数据依赖, 我们是通过数据中台做数据中转的, 比如: A系统要做客户信息的操作

  • mysql实现将data文件直接导入数据库文件

    目录 mysql将data文件直接导入数据库文件 一.确定data目录在哪里(MySQL的数据存放路径) 二.拷贝数据库 三.还原数据库 四.测试 mysql文本文件导入到数据库 一.使用load data infile命令 二.使用mysqlimport命令 总结 mysql将data文件直接导入数据库文件 一.确定data目录在哪里(MySQL的数据存放路径) 1.默认路径: C:\ProgramData\MySQL\MySQL Server 5.6\data(注意:ProgramData文

随机推荐