Ако възможността LOCAL е деактивирана, от страна на сървъра или клиента, клиент, който се опитва да издаде оператор LOAD DATA LOCAL, получава следното съобщение за грешка:
ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side
Срещнах същия проблем, когато искам да заредя текстовия файл pet.txt в таблицата за домашни любимци, следвайки урок за Mysql:https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
След като потърсих онлайн, го поправих чрез следните стъпки:
- задайте глобалните променливи с помощта на тази команда:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
- изход от текущия сървър:
mysql> quit
Bye
- свържете се със сървъра с локална системна променлива:
mysql --local-infile=1 -u root -p1
Тази променлива контролира възможностите LOCAL от страна на сървъра за изрази LOAD DATA. В зависимост от настройката local_infile, сървърът отказва или разрешава локално зареждане на данни от клиенти, които имат активиран LOCAL от страна на клиента. За изрично да накара сървъра да откаже или да разреши LOAD DATA LOCAL изрази (независимо от това как клиентските програми и библиотеки са конфигурирани при изграждането време или време на изпълнение), стартирайте mysqld съответно с деактивиран или активиран local_infile. local_infile може да бъде зададен и по време на изпълнение.
- използвайте вашата база данни и заредете файла в таблицата:
mysql> use menagerie
Database changed
mysql> load data local infile '/path/pet.txt' into table pet;
Query OK, 8 rows affected, 7 warnings (0.00 sec)
Работи ли?
Препратки:
https://dev.mysql.com /doc/refman/8.0/en/load-data-local-security.html https://dev.mysql.com /doc/refman/8.0/en/source-configuration-options.html#option_cmake_enabled_local_infile https://dev.mysql.com /doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile