gpt4 book ai didi

mysql - 为什么 MySQL 禁用加载本地 infile 不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:13 26 4
gpt4 key购买 nike

作为安全强化的一部分,我正在尝试禁用 local_infile 并防止有人访问操作系统的本地文件。根据文档,我可以通过在 my.cnf 中设置变量 local-infile=0 或使用选项 --local-infile=0 启动 mysqld 服务来禁用它。但是使用任何选项我都可以加载本地文件。

我尝试先在 /etc/my.cnf 中添加

[mysqld]
local-infile=0

之后我确认更改已反射(reflect)出来。

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | OFF |
+---------------+-------+
1 row in set (0.00 sec)

然后我从 mysql 客户端使用 load_file 加载本地文件

mysql> SELECT  load_file("/etc/passwd");

上面的命令显示了/etc/passwd 文件的内容,即使 local_infile 被禁用。有人可以告诉这里出了什么问题吗?

我从传递 mysqld --local-infile=0 开始重复相同的步骤,但没有任何变化。我也尝试过使用 --local-infile=0 选项启动 mysql 客户端,但没有区别。

最佳答案

在你的 mysql 数据库中使用这个查询

第 1 步

  SHOW GLOBAL VARIABLES LIKE 'local_infile';

第 2 步

SET GLOBAL local_infile = 'ON';

第 3 步

 SHOW GLOBAL VARIABLES LIKE 'local_infile';

关于mysql - 为什么 MySQL 禁用加载本地 infile 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com