mysql5.7导入数据提示--secure-file-priv选项报错解决

系统环境

  • CentOS Linux release 7.4.1708 (Core)
  • mysql 5.7.23

错误描述

  • 执行数据导入时,出现1290错误:

    mysql> load data infile ‘/mnt/test/20190220/test_eventHistory_2019022000_2019022023.txt‘ into table event_history_201902(json_str);
    ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

问题分析

  • 简述下错误信息,mysql服务运行时启用了--secure-file-priv option参数,因此这个语句无法执行。查阅官方文档,secure_file_priv 这个参数用于限制数据的导入和导出,例如LOAD DATA
    或者 SELECT ... INTO OUTFILE 以及 LOAD_FILE()函数,要想执行以上操作用户需要具有FILE权限。
  • secure_file_priv可以设置为如下:
    1. 如果为空,则此参数没有作用,即不做限制
    2. 如果设置为目录,则数据的导入导出就只会限制在此目录中,并且这个目录必须事先存在,服务器并不会创建它
    3. 如果设为NULL,服务器会禁止数据的导入导出操作
  • 查看一下当前系统secure_file_priv 的值:
    mysql> show global variables like ‘%secure%‘;
    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | require_secure_transport | OFF   |
    | secure_auth              | ON    |
    | secure_file_priv         | NULL  |
    +--------------------------+-------+
    3 rows in set (0.01 sec)
  • 值为NULL, 由此可知服务器会禁止数据的导入导出操作,尝试修改此参数:
    mysql> set global secure_file_priv=‘‘;
    ERROR 1238 (HY000): Variable ‘secure_file_priv‘ is a read only variable
  • 这是一个只读参数,不能使用set global来修改

解决办法

  • 在mysql配置文件/etc/my.cnf中[mysqld]配置段添加如下配置

    [mysqld]
    ...
    secure_file_priv=‘‘
    ...
  • 重启mysql并再次查看secure_file_priv的值
    # /etc/init.d/mysqld restart
    #
    mysql> show global variables like ‘%secure%‘;
    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | require_secure_transport | OFF   |
    | secure_auth              | ON    |
    | secure_file_priv         |       |
    +--------------------------+-------+
    3 rows in set (0.00 sec)
  • 再次执行导入操作,成功
    mysql> load data infile ‘/mnt/test/20190220/test_eventHistory_2019022000_2019022023.txt‘ into table event_history_201902(json_str);
    Query OK, 234 rows affected (0.00 sec)

原文地址:https://blog.51cto.com/hld1992/2368512

时间: 2024-10-19 08:36:05

mysql5.7导入数据提示--secure-file-priv选项报错解决的相关文章

关于安装itunes提示未找到quicktime的报错解决办法

首先解决童鞋们在安装itunes提示itunes要求您的电脑运行Windows7或更高版本的报错解决办法,如下图: 这是因为您当前的电脑系统是XP系统最新的itunes系统要求是Windows7.Windows2000.Windows2003.vistar等更高版本的操作系统,这个您也不必担心,不需要更换系统的,您只要搜索下载个老版本的itunes即可,不知道哪个版本可以安装,就之间搜itunes XP系统就可以,如下图: 搜到下载下来安装即可,对于安装好后打开提示未找到quicktime的报错

导入Maven 工程pom.xml首行报错解决方法

1.利用IDE导入一个Maven工程,但是pom.xml文件首行报错,发现是maven版本需要升级 2.在pom.xml文件 增加配置 <properties> <maven-jar-plugin.version>2.6</maven-jar-plugin.version></properties> 3.以eclipse为例,菜单help->install new software Name:MavenArchiver location:http://

将项目导入eclipse中出现的jsp页面报错解决

MYSQL导入数据:Table XXX doesn&#39;t exist的解决

数据表为Innodb引擎 data文件夹中存在数据表的frm文件,但在phpmyadmin中看不到这些表,于是采用导入sql文件的方式进行恢复 1.直接导入原数据表的sql文件,原frm文件不删除 出错:#1146 - Table 'eticket.et_admin' doesn't exist 2.删除原frm文件,刷新phpmyadmin,再导入该数据表的sql文件 出错:#1146 - Table 'eticket.et_admin' doesn't exist 3.删除原frm文件,重启

android studio创建模拟器报错解决 emulator: ERROR: This AVD&#39;s configuration is missing a kernel file!!

android studio创建模拟器报错 emulator: ERROR: This AVD's configuration is missing a kernel file!! 的解决办法 原因有二:1 没有,解决办法通过sdk mangager 下载 2 找不到,解决办法看系统环境变量path(此种情况多数发生在android Studio和EclipseADT同时存在的情况下) 原因是在刚刚安装完毕的androidstudio的sdk目录下没有system-image目录,也许有但没有相

PS win7_无法打开提示MSVCP120.dll报错解决方法

PS win7_无打开提示MSVCP120.dll报错解决方法 1.PS软件安装后无法打开,并提示MSVCP120.dll"ps无法启动此程序此 因为计算机中丢失msvcp120.dll" 报错提示: 问题解决方法: 下载DirectX Repair工具-安装并运行即可,会自动检测是否丢失msvcp120.dll等一系列套件. 提示图片: 下载链接:http://www.pc6.com/softview/SoftView_57945.html 注:根据自己本身使用系统版本,下载Dire

mysql5.7.17安装方式-与报错解决方式

mysql5.7.17安装方式-与报错解决方式 重点: 出错的地方:在于第三步,因为哪里要检查一下,需要安装微软的一些东西,如果直接跳过会导致后面配置的出错,死活配置不了. 卸载:进入注册表卸载,不然你直接到控制面板哪里会卸载不干净,导致你重新安装的时候出错. 勾选同意,然后点下一步. 然后根据个人需求选择一个安装,一般默认就可以了. 2.左边是你电脑上可以连接到mysql的软件,比如Visual Studio,Eclipse,PyCharm等,中间是需求的版本或者额外组件,右边是状态. 选择一

前端ajax用post方式提交json数据给后端时,网络报错 415

项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource: the server responded with a status of 415 (Unsupported Media Type) 后端异常信息:无 报错原因:缺少jackson包 类似问题注意点: springmvc添加配置.注解: pom.xml添加jackson包引用: Ajax请求时没

解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错

解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错 学习了:https://www.cnblogs.com/cnhkzyy/p/9119339.html set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 用mysql dump方式好像可以通过