将选择保存到 csv 时出现错误“--secure-file-priv 选项”

Tor*_*ren 5 mysql permissions

我尝试在 Win 2012 R2 服务器上保存一个非常大的选择(超过 7000 万行到 csv 文件中)

我以 root 身份执行查询,但我认为权限仍然存在一些问题

select * 
INTO OUTFILE 'D:\my_folder\my_file.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
from my_table
where 
...
Run Code Online (Sandbox Code Playgroud)

错误

错误代码:1290。MySQL 服务器正在使用 --secure-file-priv 选项运行,因此无法执行此语句

预先感谢您的任何帮助 !

小智 5

我在 Windows 10 上使用 MySQL Server 8.0。我尝试使用以下命令从 csv 文件加载数据:

LOAD DATA INFILE 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\World_cup_dataset.csv'
INTO TABLE trial
FIELDS TERMINATED BY ',';
Run Code Online (Sandbox Code Playgroud)

当我运行上面的命令时,我得到了

“错误 1290 (HY000):MySQL 服务器正在使用 --secure-file-priv 选项运行,因此无法执行此语句”

我尝试了很多方法来解决这个问题。最后,我将\文件路径中的“ ”字符更改为“ /”字符。

我的意思是我的新文件路径变成了C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/World_cup_dataset.csv并且我的问题得到了解决。如果您查看位于 MySQL Server 文件夹中的 my.ini 文件,其路径secure-file-priv为“ C:/ProgramData/MySQL/MySQL Server 8.0/Uploads”。所以,这个解决方案是有道理的。


Tor*_*ren 2

在Win2012上我找到了文件my.ini。

在该文件中,有一个 secure_file_priv 的定义 - 一个我可以下载或上传的文件夹,

所以我将查询更改如下:

 SELECT * 
 INTO OUTFILE 'D:\<folder_defined_as_secure_file_priv>\my_file.csv'
 FIELDS TERMINATED BY ','
 ENCLOSED BY '"'
 LINES TERMINATED BY '\n'
 FROM my_table
 WHERE 
 ...
Run Code Online (Sandbox Code Playgroud)