Решено: зареждането на локални данни е деактивирано

Последна актуализация: 09/14/2023
Автор: SQL SourceTrail

Разбира се, тук е началото на статията. Моля, обърнете внимание, че ще трябва да добавите конкретния код на местата, които съм маркирал.

За администраторите на бази данни и разработчиците работата с SQL не винаги е разходка в парка. Особено предизвикателство е, когато искате да заредите локални данни, но откриете, че тази функция е деактивирана.

Като експерти в областта, ние разбираме проблема докрай и измислихме решение, което да ви помогне да преодолеете това препятствие. Този проблем обикновено възниква, защото от съображения за сигурност MySQL деактивира опцията за локален файл по подразбиране. Не се страхувайте обаче, тъй като има начини да активирате тази функция.

Например, клиентът на командния ред на MySQL може да започне с –local-infile[=value], за да активира или деактивира изрично системната променлива local_infile в MySQL Server.

Променливата local-infile предоставя на потребителя възможността да чете файлове, разположени на хоста на сървъра, като използва оператора LOAD DATA INFILE.

MySQL – опция за стартиране на локален файл

Един от начините за зареждане на локални данни в MySQL е чрез използване на опцията за стартиране –local-infile. Тази опция може да бъде зададена на 0, 1 или празна стойност.

--local-infile[=value] 

В кода по-горе заменете „стойност“ с 0, за да деактивирате LOCAL за LOAD DATA INFILE, 1, за да го активирате, или го оставете празно, за да не задавате изрично стойността при стартиране, което оставя стойността така, както е компилирана в сървъра.

Изявлението LOAD DATA INFILE

Операторът LOAD DATA INFILE чете редове от текстов файл в таблица с много висока скорост. Оказва се много полезно, когато трябва да попълните таблица с голям брой редове. Нека да видим как работи това на практика.

LOAD DATA INFILE 'path/to/your/file.csv'
INTO TABLE your_table_name
FIELDS TERMINATED BY ',';

В горния примерен код заменете „path/to/your/file.csv“ с пътя до действителния .csv файл, който искате да заредите, и „your_table_name“ с името на вашата таблица. Освен това, ако стойностите на вашите данни са разделени с друг знак (вместо запетая), променете „,“ на този знак.

Процесът по-горе трябва да разреши предизвикателството ви и да ви върне в действие. Зареждането на локални данни не е толкова трудно, колкото изглежда първоначално, стига да знаете как да го направите и да имате предвид последиците за сигурността.

В заключение, маневрата за разрешаване на зареждането на локални данни включва инициализиране на променливата local-infile с помощта на MySQL клиент от командния ред или с помощта на mysql файл с опции (.my.cnf или my.ini и т.н.). Освен това е изключително важно да осъзнаете, че разрешаването на зареждане на локални данни може да бъде риск за сигурността, особено в споделени хостинг среди. Следователно трябва да се активира само когато е необходимо и да се деактивира, след като изискването приключи.

Подобни публикации:

Оставете коментар