17

我正在尝试在 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 新手。

4

4 回答 4

23

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

mysql> SELECT @@secure_file_priv;

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

于 2017-09-20T06:15:45.360 回答
13

啊。这是一个奇怪的错字,我的 \'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';
于 2015-11-13T11:20:40.050 回答
1

这对我有用。它需要双反斜杠,如果您尝试在两者之间使用任何工具连接到 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;
于 2019-08-01T10:13:33.020 回答
1

就我而言(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';
于 2020-02-22T02:42:14.577 回答