Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql:Error 3948 (42000): Loading local data is disabled; this must be enabled on both the client an

mysql:Error 3948 (42000): Loading local data is disabled; this must be enabled on both the client an

作者头像
鲲志说
发布于 2025-04-07 13:13:54
发布于 2025-04-07 13:13:54
17500
代码可运行
举报
运行总次数:0
代码可运行

问题

执行项目过程中意外出现的报错,之前也没有遇到过 报错信息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error 3948 (42000): Loading local data is disabled; 
this must be enabled on both the client and server sides

翻译如下:


排查

看报错信息感觉是和数据库有一定关系,网上搜索该错误,也都直指mysql中的一个参数:local_infile

需要指定该参数为开启状态就可以解决问题

解决

那就废话不多说,我们先解决问题,再去分析

查看是否开启加载本地文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show variables like 'local_infile';

如下图local_infile的值为off,确实是关闭状态:

开启全局本地文件设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 set global set local_infile=on;set global set local_infile=true;

再次查看如下图local_infile的值变为on,开启状态了:

再去执行项目,发现确实没有了报错,成功解决! 如果不需要深究原因的话,那就可以到此为止了,可以先收藏吃灰,后面有时间了再来看看!


原因分析

local_infile理解

MySQL服务端参数:local_infile 用于控制MySQL Server是否允许使用LOAD DATA LOCAL INFILE命令导入存放于客户端的数据文件。 MySQL客户端参数:–local-infile 用于控制MySQL Client是否允许使用LOAD DATA LOCAL INFILE命令导入存放于客户端的数据文件。

mysql官方解释:local_infile:

mysql版本原因

mysql5.0之后的版本安装默认设置是禁止本地批量导入和导出数据,出于安全考虑

首先确定一下我的mysql版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select version();

如下图是mysql 8版本,所以local_infile是关闭状态是正常的

高版本mysql默认关闭local_infile的原因

我们知道local_infile参数的含义是将数据文件加载到表中。可以加载位于服务器主机上的文件,或者如果指定了关键字,则可以加载客户端主机上的文件。

官方理解

将local_infile设置为开启状态会有两个潜在的安全问题:

  1. 因为LOAD DATA LOCAL是一条SQL语句,解析发生在服务器端,文件从客户端主机到服务器主机的传输是由MySQL服务器发起的,它告诉客户端语句中命名的文件。理论上,打过补丁的服务器可以告诉客户端程序传输服务器选择的文件,而不是声明中指定的文件。这样的服务器可以访问客户端用户具有读取权限的客户端主机上的任何文件。(打过补丁的服务器实际上可以用文件传输请求回复任何语句,而不仅仅是 LOAD DATA LOCAL,所以一个更基本的问题是客户端不应该连接到不受信任的服务器。)
  2. 在客户端从 Web 服务器连接的 Web 环境中,用户可以用来 LOAD DATA LOCAL读取 Web 服务器进程具有读取权限的任何文件(假设用户可以对 SQL 服务器运行任何语句)。在这种环境下,MySQL服务器的客户端实际上是Web服务器,而不是连接到Web服务器的用户运行的远程程序。
简洁理解

感谢老哥的支持与高度概括:bluetatabluetatabluetatabluetatabluetatabluetatabluetata

LOCAL_INFILE允许用户在本地文件中读取数据。 当LOCAL_INFILE设置为ON时,MySQL服务器允许客户端从本地文件中读取数据,并将其加载到MySQL表中,从而提高了MySQL服务器的性能。

MySQL 中的 local_infile 可以允许用户将本地文件加载到 MySQL服务器中,但是它存在一些安全隐患。由于它允许在服务器上加载本地文件,因此可能存在远程拒绝服务攻击的风险。此外,由于加载数据的过程涉及到对服务器文件系统的访问,因此也可能导致恶意的本地攻击。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【MySQL笔记】ERROR 1148 (42000): The used command is not allowed with this MySQL version
然后还需要重启一下MySQL,首先退出MySQL,然后重新登录MySQL:
kirin
2020/11/13
2.3K0
【MySQL笔记】ERROR 1148 (42000): The used command is not allowed with this MySQL version
Mysql蜜罐反制cobalt strike
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/12/19
7880
Mysql蜜罐反制cobalt strike
MySQL数据库原理学习(十七)
2). 针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。
用户1289394
2022/10/26
3300
MySQL数据库原理学习(十七)
MySQL蜜罐反制获取攻击者信息
蜜罐是对攻击者的欺骗技术用以监视、检测、分析和溯源攻击行为其没有业务上的用途所有流入/流出蜜罐的流量都预示着扫描或者攻击行为;因此可以比较好的聚焦于攻击流量。
知识与交流
2023/09/18
9680
MySQL蜜罐反制获取攻击者信息
MYSQL蜜罐反制
蜜罐是网络攻防对抗中检测威胁的重要产品。防守方常常利用蜜罐分析攻击行为、捕获漏洞、甚至反制攻击者。同样,攻击方也可以通过蜜罐识别技术来发现和规避蜜罐,减少被防守方溯源。蜜罐环境能否迷惑攻击者一定程度上取决于搭建环境是否仿真,简单的环境容易被攻击者识破。现如今,弱口令依然是导致网络安全事件的主要因素,有时候一个弱口令可能导致企业被攻击者从外网打到内网。mysql蜜罐通过搭建一个简单的mysql服务,如果攻击者对目标客户进行3306端口爆破,并且用navicat等工具连接蜜罐服务器,就可能被防守方读取本地文件,包括微信配置文件和谷歌历史记录等等,这样很容易被防守方溯源。
乌鸦安全
2021/08/05
3.6K0
【愚公系列】《网络安全应急管理与技术实践》 026-网络安全应急技术与实践(数据库层-MySQL数据库安全配置)
MySQL 默认安装的root 用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码至少8位,是由字母、数字和符号组成的不规律密码。使用 MySQL自带的命令 MySQLadmin 修改root密码,同时也可以登录数据库,修改数据库 MySQL下的user 表的字段内容,修改方法如下。
愚公搬代码
2024/09/24
1650
MySQL 数据导入与导出的深入解析
在现代数据库管理中,数据的导入与导出是日常工作的重要组成部分。MySQL 提供了高效且易用的命令用于实现数据的文件级迁移,包括从数据库导出到文件以及从文件导入到数据库的操作。本文将深入探讨 MySQL 的 SELECT ... INTO OUTFILE 和 LOAD DATA INFILE 两个命令,涵盖其用法、原理、场景和潜在问题。
九转成圣
2025/01/20
2660
MySQL 服务端恶意读取客户端任意文件漏洞
在昨天(2021年4月11号),云舒大佬发了一个微博,疑似有人在在Freebuf上发了一篇带有蜜罐的文章,代码里面有MySQL帐号和密码。经云舒大佬连接测试后,发现这个MySQL服务器会读取连接它的客户端上的文件。
HACK学习
2021/04/26
4.8K0
MySQL 服务端恶意读取客户端任意文件漏洞
MySQL实战第四十一讲- 怎么最快地复制一张表?
我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。
越陌度阡
2021/09/14
2.1K0
MySQL实战第四十一讲- 怎么最快地复制一张表?
数据导入利器:MySQL LOAD DATA LOCAL INFILE vs. source命令对比解析
MySQL的LOAD DATA LOCAL INFILE是一个用于将本地文件数据加载到数据库表中的功能。
用户10002156
2023/08/07
1.8K0
数据导入利器:MySQL LOAD DATA LOCAL INFILE vs. source命令对比解析
MySQL 数据备份恢复(一)select into outfile & load data infile
load data infile 和 select into outfile 是 MySQL 用于导入和导出数据的命令。select into outfile 语句用于将检索出来的数据按格式导出到文件中。load data infile 是将带有格式的数据文件导入到表中。使用 load data infile 的方式插入数据比直接执行 insert 语句插入至少快几十倍。
Se7en258
2021/07/01
3.8K0
MySQL 优化配置参数(my.cnf)
max_connections:允许客户端并发连接的最大数量,默认值是151,一般将该参数设置为500-2000 max_connect_errors:如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或MySQLadmin flush-hosts命令来清空缓存。这个参数的默认值是100,一般将该参数设置为100000。
星哥玩云
2022/08/17
1.6K0
CSS-T | Mysql Client 任意文件读取攻击链拓展
这应该是一个很早以前就爆出来的漏洞,而我见到的时候是在TCTF2018 final线下赛的比赛中,是被 Dragon Sector 和 Cykor 用来非预期h4x0r's club这题的一个技巧。
Seebug漏洞平台
2020/02/13
1.5K0
初探Mysql反向读取文件
文章首发于FreeBuf社区https://www.freebuf.com/articles/web/348248.html
用户9691112
2023/05/18
1.4K0
初探Mysql反向读取文件
7步让您的MySQL服务器更安全
不知您是否发现一种现象,那些初学渗透测试的人员往往过于关注应用的安全性,而对数据库的安全性不太重视。他们殊不知,没有数据库的配置与安全测试,应用的安全性也就无法得到充分的验证。在此,我将以最常见的数据库管理系统——MySQL为例,向您介绍如何通过七步骤来安全加固数据库服务器。
一行Java
2023/02/26
7960
7步让您的MySQL服务器更安全
phpMyAdmin LOAD DATA INFILE 任意文件读取漏洞
转载自:[phpMyAdmin LOAD DATA INFILE 任意文件读取漏洞](http://www.vulnspy.com/cn-phpmyadmin-load-data-local-file-read-local-file/phpmyadmin_load_data_infile_%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96%E6%BC%8F%E6%B4%9E/)
Ambulong
2018/12/15
2.3K1
phpMyAdmin LOAD DATA INFILE 任意文件读取漏洞
Mysql安全检查(下)
加固建议 编辑<conf_path>/my.cnf文件,[mysqld] 段落中配置新的端口参数,并重启MySQL服务: port=3506
陈不成i
2021/06/11
1.6K0
centos mysql初探 -- 配置、基本操作及问题
目录: centos安装mysql 使用mysql客户端进行简单操作 python2和python3连接mysql mysql导入文件问题 死锁解决办法 windows 7 远程连接 mysql 服务器 1、centos安装mysql 验证是否已有mysql:rpm -qa | grep mysql 在官网 https://dev.mysql.com/downloads/repo/yum/ 下载rpm,注意下载第一个: wget https://dev.mysql.com/get/mysql80-commu
Echo_fy
2018/07/05
1.5K0
Mysql Client 任意文件读取攻击链拓展
基本用法(导入文件test.txt到table1表中,txt文件中的行分隔符为\r\n,默认tab键为字段分隔符,txt文件中的每个字段按顺序对应column1、column2,。。。导入表中)
鸿鹄实验室
2021/04/15
1.8K0
Mysql Client 任意文件读取攻击链拓展
MYSQL数据优化常用配置参数
#指定MySQL可能的连接数量。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 #back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
手撕代码八百里
2020/07/28
3.7K0
相关推荐
【MySQL笔记】ERROR 1148 (42000): The used command is not allowed with this MySQL version
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验