【1】Mysql命令load data infile 执行权限问题

工作中,经常会遇到往线上环境mysql数据库批量导入源数据的场景。

针对这个场景问题,mysql有一个很高效的命令:load data infile

通过load data infile命令将data_file文件数据导入表中。

当然,因为mysql数据库权限限制的问题,分为以下几种情况:

(1)root用户(特指mysql的root,非Linux系统的root)

在mysql server部署机器通过load data infile命令导入数据时,只要文件路径指定正确,一般不会有问题。

如果导入失败,请参见随笔《Mysql 导入文件提示 --secure-file-priv option 问题

(2)非root用户在mysql server部署机器通过load data infile命令导入数据时,报错:

ERROR 1045 (28000): Access denied for user 'xxx'@'xxx' (using password: YES)

这个错误一般是因为非root用户没有FILE Privilege权限,查询当前用户权限可参见随笔《Mysql 用户及权限

两种解决方案:

[1] 命令加local参数。用load data local infile 'filename' into table 来导入数据(强烈推荐使用)

[2] 为当前用户开通权限。给当前用户开通FILE Privilege权限时,注意:

FILE权限与SELECE/DELETE/UPDATE等不同,后者是可以具体指定到某个db的某个表的,而FILE则是全局的,

即只能通过grant FILE on *.* to 'abcde'@'%'才能使FILE权限对所有db的所有tables生效。

通过grant all on db.* to 'abcde'@'%'不能使指定的user在指定的db上具有FILE权限。

根据最小权限原则(操作系统安全的概念),这个方法并不安全,故不推荐使用。

(3)非root用户从client机器load data local infile至remote mysql server时,报错:

ERROR 1148 (42000): The used command is not allowed with this MySQL version

可能原因(from mysql reference manual):

If LOAD DATA LOCAL is disabled, either in the server or the client, a client that attempts to issue such a statement receives the following error message:

ERROR 1148: The used command is not allowed with this MySQL version

可见,出于安全考虑,默认是不允许从client host远程通过load data命令导数据的

解决办法:

For the mysql command-line client, enable LOAD DATA LOCAL by specifying the --local-infile[=1]option, or disable it with the --local-infile=0 option

也即,在需要从client host导人数据的场景下,当登陆mysql时,需用--local-infile[=1]显式指定参数,典型命令形式为:

mysql --local-infile -u user -p passwd

登陆成功后,再执行load data infile 'filename' into table即可。

Good Good Study, Day Day Up.

顺序 选择 循环 总结

Mysql 命令 load data infile 权限问题的更多相关文章

  1. mysql 的load data infile

    LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中.如果指定LOCAL关键词,从客户主机读文件.如果LOCAL没指定,文件必须位于服务器上.(LOCAL在MySQL3.22. ...

  2. mysql数据库LOAD DATA INFILE Syntax

    1.LOAD DATA INFILE用来把一个文本文件里的内容高速写入到MySQL表里,它和SELECT ... INTO FILE的操作是对应的,一个导入.一个导出.使用LOAD DATA INFI ...

  3. MySQL 之 LOAD DATA INFILE 快速导入数据

    SELECT INTO OUTFILE > help select; Name: 'SELECT' Description: Syntax: SELECT [ALL | DISTINCT | D ...

  4. MySQL中load data infile将文件中的数据批量导入数据库

    有时候我们需要将文件中的数据直接导入到数据库中,那么我们就可以使用load data infile,下面具体介绍使用方法. dao中的方法 @Autowired private JdbcTemplat ...

  5. mysql 的load data infile要使用

    LOAD DATA INFILE从文本文件中读出的声明以极高的速度到表. 1.基本语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'fi ...

  6. mysql中load data Infile运用

    速度比insert要快20倍.共享一下java程序操作. package com.mysql.csv; import java.sql.Connection; import java.sql.Driv ...

  7. 利用mysql的LOAD DATA INFILE的功能读取客户端文件

    前言:今天在浏览某知论坛时,看到某大佬在渗透过程中使用伪造的MySQL服务端读取客户端文件,此大佬在利用过程中描述得不是很详细,作为小白的我看不懂啊,由此产生了此篇文章. 某大佬文章:https:// ...

  8. MySQL通过 LOAD DATA INFILE 批量导入数据

    LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP:  TP框架环境 // 定义文件路径$file_path = 'LOAD_DATA_LOCAL_INFILE.tx ...

  9. mysql load data infile的使用 和 SELECT into outfile备份数据库数据

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE t ...

随机推荐

  1. Linux关机重启注销(3)

    1.关机重启 shutdown shutdown -h now :立即关机 shutdown -h 1 now :一分钟后关机 shutdown -r now :立即重启 halt:关机 reboot ...

  2. 很全的vue插件汇总,赶紧收藏下(转)

    Vue是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总,方便查找使用,便于工作 ...

  3. 英语CollaCoriiAsini阿胶CollaCoriiAsini单词

    阿胶(colla Corii Asini)始载于<神农本草经>,是马科动物驴的皮去毛后熬制而成的胶块,其性味甘.平,具有滋阴润肺,补血.止血等功效.主要治疗血虚萎黄,眩晕心悸,肌痿无力,心 ...

  4. elasticsearch组合多条件查询实现restful api以及java代码实现

    原文:http://blog.java1234.com/blog/articles/372.html elasticsearch组合多条件查询实现restful api以及java代码实现 实际开发中 ...

  5. rz上传文件乱码

    问题 使用rz上传文件时,出现乱码,上传失败. 原因 文件中包含控制字符 解决方法 使用 rz -be -b:–binary  用binary的方式上传下载,不解释字符为ascii: -e:–esca ...

  6. Alipay 支付类

    本版本参考网友 <?php namespace App\Tools; class Alipay { //应用ID,您的APPID. private $appID = '111'; //商户私钥 ...

  7. centos curl安装

    二.安装 1.解压 下载到的压缩包为curl-7.51.0.tar.gz,使用命令  tar -zxvf curl-7.51.0.tar.gz   解压. 2.进入解压出的目录curl-7.51.0, ...

  8. Chrome调试 ---- 控制台获取元素上绑定的事件信息以及监控事件

    需求场景 在前端开发中,偶尔需要验证下某个元素上到底绑定了哪些事件,以及监控某个元素上的事件触发情况. 解决方案 普通操作 之前面对这种情况,一般采取的措施就是在各个事件里写console.info, ...

  9. 杨巧丽 实验十四 团队项目评审&课程学习总结

    实验十四 团队项目评审&课程学习总结 项目 内容 这个作业属于哪个课程 (https://www.cnblogs.com/nwnu-daizh/) 这个作业的要求在哪里 (https://ww ...

  10. mybatis框架的分页功能

    需求说明:为用户管理之查询用户列表功能增加分页实现      列表结果按照创建时间降序排列 /** * 需求说明:为用户管理之查询用户列表功能增加分页实现 列表结果按照创建时间降序排列 * @para ...