Ошибка 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?