MySQL экспорт INTO OUTFILE - ошибка -secure-file-priv при использовании директории set

Я пытаюсь запустить следующее в базе данных 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\ |
+------------------------------------------------+

Так почему же он не экспортирует файл, хотя я использую расположение --secure-file-priv?

Я привык к MSSQL и новичок в MySQL.

Заранее спасибо:)

2 ответа

Решение

Argh. Это была чёртова опечатка, мои должны были быть

Итак, мой запрос теперь такой:

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';

Важно использовать путь, указанный в:

mysql> SELECT @@secure_file_priv;

Если вы будете использовать настроенный путь, вы все равно получите эту ошибку. Как уже упоминал Латерас, не забудьте сменить путь на прямой слеш.

Это сработало для меня. Для этого нужна двойная обратная косая черта, и если вы пытаетесь использовать какие-либо инструменты для подключения к mysql, просто добавьте escape-символы.

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;

В моем случае (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';
Другие вопросы по тегам