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

时间:2015-08-11 20:36:53

标签: mysql

我遇到了这样的问题:错误代码: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'

当我执行它时:

INTO OUTFILE 'report.csv'
    FIELDS TERMINATED BY '#'
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'

然后它有效。此外,在重新安装MySQL服务器之前,INTO OUTFILE xxx的相同语句实际上有效。

有人有想法如何处理这个错误吗?

4 个答案:

答案 0 :(得分:47)

快速回答,不需要您编辑任何配置文件(并且可以在其他操作系统以及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)

然后确保在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'

原始回答

自从从MySQL 5.6.25升级到5.6.26后,我遇到了同样的问题。

在我的情况下(在Windows上),查看MySQL56服务向我显示服务启动时使用的选项/设置文件是C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

MySQL56 Service

打开此文件我可以看到在这个新版本的MySQL Server中添加了secure-file-priv选项并带有默认值:

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'

答案 1 :(得分:4)

如果您更改了my.ini并重新启动mysql但仍然出现此错误,请检查您的文件路径并将"\"替换为"/"。 我在更换后解决了问题。

答案 2 :(得分:1)

我必须设置

C:\ProgramData\MySQL\MySQL Server 8.0/my.ini  secure-file-priv=""

当我用secure-file-priv注释一行时,secure-file-priv为null,因此我无法下载数据。

答案 3 :(得分:-3)

上面的代码导出的数据没有标题列,这很奇怪。 这是怎么做的。您必须稍后使用文本编辑器合并这两个文件。

SELECT column_name FROM information_schema.columns WHERE table_schema = 'my_app_db' AND table_name = 'customers' INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.6/Uploads/customers_heading_cols.csv' FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ',';