MySQL无法在服务器上启用LOAD DATA LOCAL INFILE

时间:2018-08-06 23:07:05

标签: mysql

首先,我是MySQL的新手,所以请在回答时尽量保持数字,如果跳过步骤,我可能会迷路。

在问这个问题之前,我一直在努力研究解决方案,到目前为止,我已经花了大约3个小时。我将解释我已尽力采取了哪些步骤。

目标:允许使用LOAD DATA LOCAL INFILE

挑战:当前服务器上不允许该命令。事实证明,所有尝试找到并打开某些方法来修改服务器选项的尝试均无济于事。在客户端,我能够启用它。

我发现的东西 首先根据我发现的官方教程 第6.1.6节“ LOAD DATA LOCAL的安全性问题” https://dev.mysql.com/doc/refman/8.0/en/load-data-local.html

不幸的是,该解释毫无用处,因为它跳过了大量的操作,他们声明要在服务器上启用它以执行以下操作

在服务器端:

local_infile系统变量控制服务器端的LOCAL功能。根据local_infile设置,服务器将拒绝或允许在客户端启用LOCAL的客户端加载本地数据。默认情况下,local_infile是禁用的。

要明确地导致服务器拒绝或允许LOAD DATA LOCAL语句(无论在构建时或运行时如何配置客户端程序和库),请分别在禁用或启用local_infile的情况下启动mysqld。也可以在运行时设置local_infile。

因此,以下操作均未作任何解释

1)如何在禁用或启用local_infile的情况下启动mysqld 2)如何在运行时设置local_infile

所以我看着这个

5.1.1配置服务器 https://dev.mysql.com/doc/refman/8.0/en/server-configuration.html

他们显示了许多跳过的步骤

shell> mysqld --verbose --help

您如何进入shell?我尝试在cmd上输入该内容,但出现错误

还要注意,未创建my.ini,并且在MySQL Workbench下的选项文件下显示

“未指定我的SQL配置文件的位置(即:my.cnf)”

似乎我没有一个,也不知道如何创建一个

最后我正在运行Windows 10和MySQL 8.0版

作为旁注,我尝试关闭服务器,并获得访问被拒绝

我也尝试着做

mysql> LOAD DATA INFILE'C:/Users/User/Desktop/pet.txt'INTO TABLE宠物; 错误1290(HY000):MySQL服务器正在使用--secure-file-priv选项运行,因此它无法执行此语句

任何帮助将不胜感激

谢谢

1 个答案:

答案 0 :(得分:0)

4小时后,终于知道了!

所以这是步骤

  1. 打开窗口服务
  2. 转到MySQL80并双击
  3. 转到服务状态,然后单击停止
  4. 在“开始”参数下插入--local-infile = 1
  5. 打开MySQL 8.0命令行客户端
  6. 在命令行上登录后,执行SET GLOBAL local_infile ='ON;

这些步骤使我可以使用LOAD DATA LOCAL INFILE