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

Lat*_*lus 9 mysql select-into-outfile

我想在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';
Run Code Online (Sandbox Code Playgroud)

我收到了错误

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

当我运行以下

mysql> SELECT @@secure_file_priv;
Run Code Online (Sandbox Code Playgroud)

我明白了

+------------------------------------------------+
| @@secure_file_priv                             |
+------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\ |
+------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

那么,即使我使用set -secure-file-priv位置,为什么不导出文件呢?

我习惯于MSSQL和MySQL的新手.

先感谢您 :)

Say*_*ane 15

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

mysql> SELECT @@secure_file_priv;
Run Code Online (Sandbox Code Playgroud)

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


Lat*_*lus 10

哎呀.这是一个奇怪的错字,我的应该是

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

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';
Run Code Online (Sandbox Code Playgroud)