我遇到了这样的问题:错误代码:1290.MySQL服务器运行时带有--secure-file-priv选项,因此 当我尝试执行MySQL语句时,它无法执行此语句(Windows):
SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE 'report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)
当我执行它时:
INTO OUTFILE 'report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)
然后它工作.此外,在INTO OUTFILE xxx重新安装MySQL服务器之前,实际工作的相同声明.
有人有想法如何处理这个错误?
ise*_*rds 51
快速回答,不要求您编辑任何配置文件(并且可以在其他操作系统以及Windows上运行),只需找到允许保存的目录:
mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.06 sec)
Run Code Online (Sandbox Code Playgroud)
然后确保在SELECT语句的INTO OUTFILE子句中使用该目录:
SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE '/var/lib/mysql-files/report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)
原始答案
自从从MySQL 5.6.25升级到5.6.26后,我遇到了同样的问题.
在我的情况下(在Windows上),查看MySQL56服务向我显示服务启动时使用的选项/设置文件是 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
打开这个文件我可以看到secure-file-priv这个新版本的MySQL服务器中添加了一个默认值:
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads"
您可以对此进行评论(如果您处于非生产环境中),或者尝试更改设置.不要忘记在进行更改后重新启动服务.
或者,您可以尝试将输出保存到允许的文件夹中(位置可能因安装而异):
SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.6/Uploads/report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127020 次 |
| 最近记录: |