You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下MySQL 8.0禁用secure_file_priv及CSV加载报错求助

解决MySQL 8.0 LOAD DATA INFILE的secure_file_priv报错问题

首先咱们先理清问题根源:secure_file_priv是MySQL的只读系统变量,没法通过SET命令直接修改,必须修改配置文件并重启服务才能生效。针对你找不到my.ini的情况,我给你一步步拆解解决方案:

方法一:无需改配置,直接用默认允许路径(最快解决)

既然SHOW VARIABLES LIKE "secure_file_priv";显示的允许路径是C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\,你只需要把a.csv复制到这个Uploads目录下,然后修改LOAD DATA语句的文件路径即可:

LOAD DATA INFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\a.csv' INTO TABLE errorClick 
columns terminated by ',' 
lines terminated by ',\r\n' 
ignore 1 lines;

这样不用改任何配置,就能直接执行成功。

方法二:修改secure_file_priv允许任意路径(长期方案)

如果不想每次都手动移动文件,那需要修改MySQL的配置文件,步骤如下:

1. 找到正确的my.ini位置

你说在C:\ProgramData\MySQL\MySQL Server 8.0下没找到,大概率是这两个原因:

  • 文件被隐藏:Windows默认会隐藏系统文件,你可以在文件夹顶部的「查看」选项卡中勾选「隐藏的项目」,就能看到my.ini了。
  • 通过MySQL服务属性定位:
    • 右键「此电脑」→ 选择「管理」→ 进入「服务和应用程序」→ 点击「服务」
    • 找到名为MySQL80的服务,右键选「属性」
    • 在「可执行文件路径」里,会看到类似"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80的内容,--defaults-file后面就是my.ini的准确路径。

2. 修改my.ini配置

找到my.ini后,用记事本或文本编辑器打开:

  • 找到[mysqld]段落(如果没有就手动加在文件末尾)
  • 添加或修改一行:
    secure_file_priv = ""
    
    (如果只想允许特定路径,比如你的C盘根目录,可写成secure_file_priv = "C:\\")

3. 重启MySQL服务

回到「服务」界面,找到MySQL80服务,右键选「重启」,等待服务重启完成。

4. 验证配置生效

重新登录MySQL,执行:

SHOW VARIABLES LIKE "secure_file_priv";

如果结果显示secure_file_priv的值是你设置的(空或指定路径),就可以用原来的LOAD DATA语句加载C:\a.csv了。

注意事项

  • 如果需要手动创建my.ini文件,要确保文件编码为ANSI,否则MySQL可能读取失败。
  • 修改配置文件后必须重启服务,否则新配置不会生效。

内容的提问来源于stack exchange,提问作者Nurav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 09:57:29