刚好根据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服务后,依然还是报错,找到资料如下:
- 编辑(CentOS 的 /etc/my.cnf 文件)或(Windows 的 my.ini 文件)
secure-file-priv = ""
在末尾添加 一行- 停止mysql服务使用
systemctl stop mysqld
- 使用重新启动它
systemctl start mysqld
将 secure-file-priv设置为空:
再次执行,如下: