• 欢迎访问DBA的辛酸事儿,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 欢迎大家关注博主公众号:DBA的辛酸事儿
  • 博文中若有错误的地方,请大家指正,大家的指正是我前进的动力

ERROR 2068 (HY000) at line 1: LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

MySQL SEian.G 3年前 (2021-05-06) 7099次浏览 已收录 0个评论

实例版本:MySQL 8.0.19

在导入数据的时候出现如下的报错信息:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2068 (HY000) at line 1: LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

导入的命令如下:

mysql -udata_temp -h10.30.xx.xx -Dtest -p -P4306 -e "load data local infile '/tmp/tank_avg_datas.txt' replace into  table tank_dts_analytics fields terminated by ',' (ping_minus_avg,pings_level1,pings_level2,pings_level3,pings_level4,real_pings_level1,real_pings_level2,real_pings_level3,real_pings_level4)"

排查步骤:

1、查看实例的参数local_infile是否是启用状态

mysql>>show variables like '%local_infile%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.00 sec)

发现该参数已经设置启动了

MySQL 8.0版本, local_infile默认是关闭的,但是MySQL 5.7版本默认是开启的;

2、但是客户端操作还是无法执行导入操作

解决方案:

需要在导入的时候,mysql客户端需要加上–local-infile=1即可导入

mysql -udata_temp -h10.30.xx.xx -Dtest -p --local-infile=1  -P4306 -e "load data local infile '/tmp/tank_avg_datas.txt' replace into  table tank_dts_analytics fields terminated by ',' (ping_minus_avg,pings_level1,pings_level2,pings_level3,pings_level4,real_pings_level1,real_pings_level2,real_pings_level3,real_pings_level4)"

小结:

如果load data语句使用了local子句,则客户端使用TCP远程连接mysql server时,没有file权限仍然能够导入文本文件,这个时候是非常危险的,因为local子句的内部原理是从客户端的主机读取文本文件并传送到server端的/tmp目录并保存为一个临时文件,再执行load data语句的。另外,要使用local子句,还需要看server端启动是否关闭了local_infile选项(如果不指定该选项,则MySQL 8.0服务端默认为OFF,MySQL 5.7默认是ON),mysql client连接时是否关闭了local_infile选项(如果不指定该选项,则MySQL 8.0客户端默认为OFF,MySQL 5.7客户端默认是ON),local_infile在server或client端任意一端关闭都不能使用local子句,会报文章开头的错误

参考链接:

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile

https://bugs.mysql.com/bug.php?id=91872

https://stackoverflow.com/questions/63361962/error-2068-hy000-load-data-local-infile-file-request-rejected-due-to-restrict

ERROR 2068 (HY000) at line 1: LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.


如果您觉得本站对你有帮助,那么可以收藏和推荐本站,帮助本站更好地发展,在此谢过各位网友的支持。
转载请注明原文链接:ERROR 2068 (HY000) at line 1: LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
喜欢 (5)
SEian.G
关于作者:
用心去记录工作,用心去感受生活,用心去学着成长;座右铭:苦练七十二变,笑对八十一难
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址