无法将MySQL输出写入本地文件

时间:2019-03-03 19:17:29

标签: mysql database mysql-workbench

我无法将查询结果写入本地文件。我确定查询会产生输出。我可以查看。我在Ubuntu 18.04上使用MySQL工作台。添加以下行以将输出写入文件后:

INTO OUTFILE '/var/lib/mysql-files/myproject/out_files/mydata.txt' FIELDS TERMINATED BY ',';

我收到此错误:

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

我查看了以前的帖子。我确保/var/lib/mysql-files是指定的写入路径。这是我得到的输出: mysql> SELECT @@ GLOBAL.secure_file_priv;

+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/     |
+---------------------------+
1 row in set (0.00 sec)

出什么问题了?

1 个答案:

答案 0 :(得分:0)

secure_file_priv必须准确命名输出到的目录。您无法输出到子目录。

这是我刚刚在笔记本电脑上使用MySQL 5.6进行的演示:

mysql> select @@global.secure_file_priv;
+---------------------------+
| @@global.secure_file_priv |
+---------------------------+
| /tmp/                     |
+---------------------------+

mysql> select 123 into outfile '/tmp/foo';
Query OK, 1 row affected (0.00 sec)

检查数据是否已写出:

$ cat /tmp/foo
123

然后尝试一个子目录:

mysql> select 456 into outfile '/tmp/a/b/text';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

即使我在尝试此操作之前mkdir -p /tmp/a/b确保子目录存在,它仍然会失败。