Не могу записать вывод MySQL в локальный файл - PullRequest
0 голосов
/ 03 марта 2019

Я не могу записать свой результат запроса в локальный файл.Я уверен, что мой запрос производит вывод.Я могу просмотреть это.Я использую MySQL верстак на Ubuntu 18.04.После того, как я добавил эту строку, чтобы записать вывод в файл:

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 голосов
/ 03 марта 2019

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, чтобы убедиться, что подкаталог существует до того, как я попробую это, он все равно завершится неудачей.

...