我无法将查询结果写入本地文件。我确定查询会产生输出。我可以查看。我在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)
出什么问题了?
答案 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
确保子目录存在,它仍然会失败。