Ошибка secure-file-priv при импорте файла csv в sql

Я пытаюсь импортировать CSV-файл в SQL, пожалуйста, найдите следующий код:

ЗАГРУЗИТЬ ДАННЫЕ INFILE 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\Assignment\Auto.csv' INTO TABLE.AutoПОЛЯ, ПРЕКРАЩАЕМЫЕ ',' ЛИНИИ, ПРЕКРАЩАЕМЫЕ '\r\n' ЛИНИИ 1;

Это дает мне ошибку:

Код ошибки: 1290. Сервер MySQL работает с опцией --secure-file-priv, поэтому он не может выполнить этот оператор 0,016 сек.

Затем я попытался с ключевым словом LOCAL(как упоминалось в некоторых решениях), и он дал мне ошибку:

Код ошибки: 1148. Используемая команда не разрешена с этой версией MySQL 0,000 сек.

Как я нашел много решений для этого, поэтому я проверил значение этой переменной вручную в сеансе с командой:

ПОКАЗАТЬ ПЕРЕМЕННЫЕ, КАК "secure_file_priv";

выход для этого:

secure_file_priv C: \ ProgramData \ MySQL \ MySQL Server 8.0 \ Uploads \

** Это то же место, которое я использую в пути загрузки данных выше.

Я проверил файл C:\ProgramData\MySQL\MySQL Server 8.0\my.ini, и он содержит следующие данные:

Secure File Priv.

secure-file-priv = "C: / ProgramData / MySQL / MySQL Server 8.0 / Uploads" Может кто-нибудь сказать, пожалуйста, в чем здесь проблема, и как я могу решить эту проблему.

1 ответ

SHOW VARIABLES LIKE "secure_file_priv";

Эта команда покажет путь, например

C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/

Поместите свой файл по тому же пути в загрузках. Также проверьте обратную косую черту в обоих путях. Если он другой, измените свой код. Я сделал два шага, и проблема была решена в MySQL 8.

Если вы хотите использовать LOAD DATA LOCAL INFILE … вам нужно установить глобальную переменную MySQL Server local_infile к истине.

SET GLOBAL local_infile = true;

Вам также нужно пройти --local-infle возможность mysql клиент командной строки

mysql --local-infile -hlocalhost -uroot -p

О безопасном файле Priv Ошибка - делает ваш Auto.csv файл находится на той же машине, где работает MySQL Server?

Другие вопросы по тегам