Как я должен решать --secure-file-priv в MySQL?
Я изучаю MySQL и попытался использовать LOAD DATA предложения. Когда я использовал его, как показано ниже:
LOAD DATA INFILE "text.txt" INTO table mytable;
Я получил следующую ошибку:
сервер MySQL работает с параметром --secure-file-priv, поэтому он не может выполнить этот оператор
Как я могу решить эту ошибку?
Я проверил другой вопрос на том же сообщении об ошибке, но до сих пор не могу найти решение.
Я использую MySQL 5.6
9 ответов:
он работает по назначению. Ваш сервер MySQL был запущен с --secure-file-priv опция, которая в основном ограничивает, из каких каталогов вы можете загружать файлы с помощью
LOAD DATA INFILE.вы можете использовать
SHOW VARIABLES LIKE "secure_file_priv";чтобы увидеть каталог, который был настроен.у вас есть два варианта:
- переместить файл в каталог, указанный
secure-file-priv.- отключить
secure-file-priv. Это должно быть удалено из запуска и не может быть изменено динамически. Для этого проверьте параметры запуска MySQL (в зависимости от платформы) и my.Ини.
у меня была та же проблема. Я, наконец, решил с помощью в команде
LOAD DATA LOCAL INFILE "text.txt" INTO TABLE mytable;вы можете найти дополнительную информацию здесь http://dev.mysql.com/doc/refman/5.7/en/load-data.html
Если указано LOCAL, то файл считывается клиентской программой на клиент хоста и отправляется на сервер. Файл может быть предоставлен как полный имя пути, чтобы указать его точное местоположение. Если задан относительный путь имя интерпретируется относительно каталога, в котором запущена клиентская программа.
на Ubuntu 14 и Mysql 5.5.53 этот параметр, кажется, включен по умолчанию. Чтобы отключить его, вам нужно добавить
secure-file-priv = ""в свой личный.файл cnf в группе конфигурации mysqld. например:-[mysqld] secure-file-priv = ""
Я работаю над MySQL5.7. 11 на Debian, команда, которая работала для меня, чтобы увидеть каталог:
mysql > SELECT @@global.secure_file_priv;
вот что работает для меня в Windows 7 отключить
secure-file-priv(Вариант № 2 от ответ ВХУ):
- остановите службу сервера MySQL, перейдя в
services.msc.- на
C:\ProgramData\MySQL\MySQL Server 5.6(ProgramDataбыла скрытая папка в моем случае).- открыть
my.iniфайл в блокноте.- Поиск 'secure-file-priv'.
- прокомментируйте строку, добавив ' # ' в начале строки.
- сохранить файл.
- запустите службу сервера MySQL, перейдя в
services.msc.для сервера MySQL 5.7.16 и выше, пожалуйста, обратитесь к комментарию dbc ниже.
Если файл является локальным для вашего компьютера используйте LOCAL в команде
LOAD DATA LOCAL INFILE "text.txt" INTO table mytable;
Я имел такую же проблему с помощью файла-прив'. Комментируя в то .ini-файл не работал и не перемещал файл в каталог, указанный "secure-file-priv".
наконец, как предложил dbc, создание "secure-file-priv", равного пустой строке, работало. Так что если кто-то застрял после попытки ответов выше, надеюсь это поможет.
у меня были всякие проблемы с этим. Я переодевалась.cnf и всевозможные сумасшедшие вещи, которые пытались показать другие версии этой проблемы.
что сработало для меня:
ошибка, которую я получал
The MySQL server is running with the --secure-file-priv option so it cannot execute this statementЯ был в состоянии исправить это путем открытия /usr/местные/MySQL в/поддержки-Files/MySQL для.сервер и изменение следующей строки:
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" -- $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?до
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --secure-file-priv="" $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
У меня была эта проблема на windows 10. "--secure-file-priv in MySQL " для решения этой задачи я сделал следующее.
- в Windows search (внизу слева) я набрал "powershell".
- щелкнул правой кнопкой мыши на powershell и побежал как администратор.
- переход к файлу bin сервера. (C:\Program Files\MySQL\MySQL Server 5.6\bin);
- наберется ./ mysqld
- нажмите "enter"
сервер запустился, как и ожидалось.
Comments