Hvis LOCAL-funktionen er deaktiveret, på enten server- eller klientsiden, modtager en klient, der forsøger at udstede en LOAD DATA LOCAL-sætning, følgende fejlmeddelelse:
ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side
Jeg mødte det samme problem, da jeg vil indlæse tekstfilen pet.txt i kæledyrstabellen efter en tutorial af Mysql:https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
Efter at have søgt online fik jeg det rettet ved at følge disse trin:
- indstil de globale variabler ved at bruge denne kommando:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
- luk nuværende server:
mysql> quit
Bye
- tilslut til serveren med lokal-infil systemvariabel :
mysql --local-infile=1 -u root -p1
Denne variabel styrer LOCAL-kapaciteten på serversiden til LOAD DATA-sætninger. Afhængigt af local_infile-indstillingen nægter eller tillader serveren lokal dataindlæsning af klienter, der har LOCAL aktiveret på klientsiden. For eksplicit at få serveren til at nægte eller tillade LOAD DATA LOCAL-sætninger (uanset hvordan klientprogrammer og biblioteker er konfigureret ved build tid eller runtime), start mysqld med henholdsvis local_infile deaktiveret eller aktiveret. local_infile kan også indstilles under kørsel.
- brug din database og indlæs filen i tabellen:
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)
Virker det?
Referencer:
https://dev.mysql.com /doc/refman/8.0/da/load-data-local-security.html https://dev.mysql.com /doc/refman/8.0/da/source-configuration-options.html#option_cmake_enabled_local_infile https://dev.mysql.com /doc/refman/8.0/da/server-system-variables.html#sysvar_local_infile