MySQL не может включить LOAD DATA LOCAL INFILE на сервере

0

Сначала я начинающий пользователь MySQL, поэтому я бы попросил, чтобы в ответах, чтобы сохранить его по номерам, если шаги пропущены, я, вероятно, потеряюсь.

Я пробовал энергично исследовать решения, прежде чем спрашивать об этом, пока я потратил около 3 часов на это. Я объясню, какие шаги я предпринял в меру своих способностей.

Цель: разрешить использование LOAD DATA LOCAL INFILE

Задача: на данный момент команда не разрешена на сервере. Все попытки найти и открыть какой-либо метод для изменения параметров сервера оказались бесплодными. На стороне клиента я смог включить его.

Все, что я нашел. Сначала в официальном учебнике я нашел раздел 6.1.6 "Проблемы безопасности с LOAD DATA LOCAL" https://dev.mysql.com/doc/refman/8.0/en/load-data-local.html

К сожалению, объяснение бесполезно, поскольку оно пропускает огромное количество способов, они заявляют, что позволяют ему на сервере выполнять следующие действия

На стороне сервера:

Системная переменная local_infile контролирует возможности LOCAL на стороне сервера. В зависимости от параметра local_infile сервер отказывается или разрешает локальную загрузку данных клиентами, у которых LOCAL включен на стороне клиента. По умолчанию local_infile отключен.

Чтобы явно заставить сервер отказаться или разрешить операторы LOAD DATA LOCAL (независимо от того, как настроены клиентские программы и библиотеки во время сборки или времени выполнения), запустите mysqld с отключенным или включенным local_infile. local_infile также может быть установлен во время выполнения.

Таким образом, следующие действия никоим образом не объясняются

1) Как запустить mysqld с local_infile отключенным или включенным 2) Как локальный_файл также может быть установлен во время выполнения

Тогда я посмотрел на это

5.1.1 Настройка сервера https://dev.mysql.com/doc/refman/8.0/en/server-configuration.html

Опять много пропущенных шагов они показывают это

shell> mysqld --verbose --help

Как вы попадаете в оболочку? Я пробовал на cmd для ввода, но я получил ошибки

Также следует отметить, что my.ini не был создан, а в MySQL Workbench при поиске в разделе "Файл параметров" говорится:

"Местоположение конфигурационного файла My SQL (то есть: my.cnf) не указано"

Кажется, у меня его нет, и я не знаю, как создать его

Наконец, я запускаю Windows 10 и MySQL версии 8.0

В качестве побочного примечания я попытался отключить сервер и получил и Access denied

Также я попробовал просто сделать

mysql> LOAD DATA INFILE 'C: /Users/User/Desktop/pet.txt' INTO TABLE pet; ERROR 1290 (HY000): сервер MySQL работает с параметром --secure-file-priv, поэтому он не может выполнить это утверждение

Любая помощь приветствуется

Спасибо

Теги:

1 ответ

0

Спустя 4 часа, и я, наконец, понял это!

Итак, вот шаги

  1. Службы открытого окна
  2. Перейдите в MySQL80 и дважды щелкните
  3. Перейдите к статусу службы и нажмите "Стоп".
  4. В разделе Параметры запуска вставить --local-infile = 1
  5. Откройте клиент командной строки MySQL 8.0
  6. После того, как вы авторизуетесь в командной строке SET GLOBAL local_infile = 'ON;

Эти шаги позволили мне использовать LOAD DATA LOCAL INFILE

  • 0
    Можете ли вы объяснить этот шаг 4, пожалуйста?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню