MySQL 使用设置目录时导出 INTO OUTFILE --secure-file-priv 错误

MySQL exporting INTO OUTFILE --secure-file-priv error when using set directory

我正在尝试 运行 MySQL 数据库中的以下内容:

SELECT * FROM mysql.db
INTO OUTFILE "C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\db.csv"
FIELDS TERMINATED BY '|'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

我收到错误:

SQL Error (1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

当我运行以下内容时:

mysql> SELECT @@secure_file_priv;

我得到:

+------------------------------------------------+
| @@secure_file_priv                             |
+------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\ |
+------------------------------------------------+

为什么即使我使用的是 set --secure-file-priv 位置它也没有导出文件?

我习惯了 MSSQL,但刚接触 MySQL。

唉。这是一个奇怪的错字,我的 \'s 应该是 /'s

所以我现在的查询是这样的:

SELECT * FROM   mysql.db INTO OUTFILE "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/db_pipe.csv" FIELDS TERMINATED BY '|' ENCLOSED BY '"'  LINES TERMINATED BY '\n';

使用以下提到的路径位置很重要:

mysql> SELECT @@secure_file_priv;

如果您将使用自定义路径位置,您仍然会收到此错误。正如 Lateralus 所提到的,不要忘记将路径更改为正斜杠。

这对我有用。它需要双反斜杠,如果您尝试使用介于两者之间的任何工具连接到 mysql,只需添加转义字符即可。

SELECT * 
      INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\employees.txt'
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
      FROM employees;

就我而言 (Windows):

  1. 在my.ini中设置secure_file_priv=""

  2. 在路径中使用双反斜杠,如下所示:

SELECT description, comment FROM usecase
INTO OUTFILE 'C:\tmp\usecase0.csv' 
FIELDS ENCLOSED BY '"' 
TERMINATED BY ';' 
ESCAPED BY '"' 
LINES TERMINATED BY '\r\n';