windows mysql8 导出文件secure-file-priv 配置

解决MySQLsecure-file-priv错误导出文件问题,
在尝试使用SQL语句导出文件时遇到1290错误,提示MySQL服务器因--secure-file-priv选项无法执行。检查secure-file-priv的当前值,并尝试在MySQL配置文件中将其设为空,但重启服务后问题依旧。进一步的解决方案是修改my.ini文件,添加secure-file-priv=,然后停止并重新启动MySQL服务,以允许文件操作。

刚好根据sql语句导出文件,开始编写脚本:

SELECT * FROM (
SELECT l.lc_partid,s.partname,l.lwtmc,l.hh,l.tg,l.lwtjd,l.lwtwd,l.gdh,l.csfs
,CASE l.sfzj WHEN 1 THEN '中继' ELSE '非中继' END AS sfzj,l.gdfs
,t.xm,t.lxdh,t.xyqk,t.xypp,t.tyzp
FROM jc_lwt l LEFT JOIN jc_tyxx t ON l.id=t.lwtid AND t.sczt=0
INNER JOIN sys_part s ON l.lc_partid=s.partid
WHERE l.sczt=0 AND l.cjsj>='2023-01-01 00:00:00'
AND l.lc_partid LIKE '00%'
ORDER BY l.lwtmc)
s INTO OUTFILE 'D:\\file.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' ;

 兴高采烈地按下执行键,结果:

1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

大概意思:MySQL 服务器正在使用–secure-file-priv 选项运行,因此无法执行此语句

通过命令查看secure-file-priv 的当前值:

SHOW VARIABLES LIKE "secure_file_priv"; 

找到MySQL安装目录,本人使用的是zip解压版,直接找到解压目录的ini文件,在[mysqld]节添加配置:

 重启mysql服务后,依然还是报错,找到资料如下:

  1. 编辑(CentOS 的 /etc/my.cnf 文件)或(Windows 的 my.ini 文件)
  2. secure-file-priv = "" 在末尾添加 一行
  3. 停止mysql服务使用systemctl stop mysqld
  4. 使用重新启动它systemctl start mysqld

将 secure-file-priv设置为空:

 

 再次执行,如下:

 

### WindowsMySQL 8.0 的 `--secure-file-priv` 参数错误解决方案 在 Windows 系统上运行 MySQL 8.0 时,如果遇到由 `--secure-file-priv` 参数引起的 SQL 语句执行失败问题,通常是因为该参数限制了文件导入导出操作的路径范围。此安全特性旨在防止未经授权的数据写入或读取。 #### 解决方案概述 可以通过调整服务器配置来解决这一问题。以下是具体方法: 1. **确认当前设置** 首先查询数据库中的 `secure_file_priv` 值以了解其当前状态: ```sql SHOW VARIABLES LIKE 'secure_file_priv'; ``` 如果返回的结果为空字符串 (`''`) 或者是一个特定目录,则表示只有这些指定位置允许进行文件输入输出操作[^1]。 2. **修改 my.ini 文件** 编辑 MySQL 安装目录下的 `my.ini` 配置文件,在 `[mysqld]` 节下添加或更改如下行: ```ini secure-file-priv="" ``` 将此项设为空意味着取消对数据文件所在路径的所有限制;或者可以将其设定为你希望使用的某个固定目录比如 C:\Data\MySQLFiles\[^\]. 3. **重启服务并验证改动效果** 修改完成后记得重新启动 MySQL Server 让新设置生效,并再次通过上面提到过的命令检查变量值是否已更新至预期结果。 4. **注意权限管理** 当然也要确保操作系统层面给予相应盘符及子文件夹足够的访问权给运行 mysqld 进程的身份账户(通常是 Network Service)。这一步骤对于成功完成后续实际业务逻辑至关重要[^2]。 5. **测试功能正常与否** 使用 LOAD DATA INFILE 或 OUTFILE 测试能否顺利加载外部文本资料到表里以及反过来把内部记录保存成纯文字档形式存放在硬盘当中去检验整个流程是否通畅无阻塞现象存在。 ```sql LOAD DATA INFILE 'C:/path/to/file.csv' INTO TABLE test_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; SELECT * INTO OUTFILE 'C:/path/to/output.txt' FROM test_table; ``` 以上即为针对 Windows 平台上的 MySQL 8 版本关于如何处理因启用 '--secure-file-priv' 导致无法正常使用某些涉及磁盘交互型指令情形的一套完整应对策略说明文档内容总结完毕!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hefeng_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值