Импорт таблицы в БД из файла. Ошибка

slugger

Client
Регистрация
09.01.2011
Сообщения
12
Благодарностей
2
Баллы
3
Шаблон нормально работает на 5-й версии ZP. При переходе на версию ZP 7.3.2.1 перестал работать импорт таблицы из файла в БД. Ошибка
Выполнение действия Db Loading local data is disabled; this must be enabled on both the client and server sides
Сам запрос
LOAD DATA LOCAL INFILE @file IGNORE INTO TABLE `base`.`table` CHARACTER SET utf8 FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (`name_1`, `name_2`, `name_3`);
Что может быть причиной?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113
Решение:
Привет.
Я по поводу твоей проблемы с загрузкой данных из файла прямиком в БД.

В последних версиях ЗП библиотека для работы с Mysql обновилась, а разработчики этой библиотеки (это сторонние разработчики, с ЗП ничего общего не имеют) по умолчанию отключили (раньше была включена) функцию загрузки данных из файла по соображениям безопасности т.к. в ней была какая-то уязвимость.

Можно воспользоваться ODBC коннектором к базе данных. По вот этой инструкции - https://zennolab.com/discussion/threads/postgresql-subd-i-zennoposter-podkljuchenie-cherez-odbc.43320/, тут Лорд Альфред настраивает PostgreSQL, но нам важны первые 11 пунктов из его инструкции, а они такие же и для MySQL. Если на 10ом шаге в списке не будет MySql ODBC Unicode connector в списке, то ставим отсюда - https://dev.mysql.com/downloads/connector/odbc/

Потом появляется окно. Заполняем вот так (потом нажимаем Test, чтоб проверить, что всё ОК):
87174


Потом несколько раз ОК и появляется вот такое окно:
87175


То что выделено, надо будет добавить вручную (не забудь поставить точку с запятой перед этой строкой) ENABLE_LOCAL_INFILE=1.

Затем опять ОК и всё должно заработать :-)

Проверил на себе - данные из файла добавлялись. Вот таким запросом: LOAD DATA LOCAL INFILE 'C:\\Users\\USERNAME\\Desktop\\ms.txt' INTO TABLE pr;

Пиши, если что-то будет не получаться.
 
Последнее редактирование модератором:
  • Спасибо
Реакции: z@jivalo и slugger

slugger

Client
Регистрация
09.01.2011
Сообщения
12
Благодарностей
2
Баллы
3
Выполнение действия Db ERROR [HY000] [MySQL][ODBC 8.0(w) Driver][mysqld-8.0.19]LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
В итоге импорт из файла в MySQL через ODBC у меня на 7-й версии ZP не работает. Как-то это грустно, потерян важный функционал...
 

slugger

Client
Регистрация
09.01.2011
Сообщения
12
Благодарностей
2
Баллы
3
В общем пока импортирую "костыльным" способом: файл CSV преобразую в запросы, и уже через запросы создаю нужные таблицы.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)