Om LOCAL-funktionen är inaktiverad, antingen på server- eller klientsidan, får en klient som försöker utfärda en LOAD DATA LOCAL-sats följande felmeddelande:
ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side
Jag stötte på samma problem när jag vill ladda textfilen pet.txt i pet-tabellen efter en handledning av Mysql:https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
Efter att ha sökt på nätet fixade jag det genom dessa steg:
- ställ in de globala variablerna med det här kommandot:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
- avsluta nuvarande server:
mysql> quit
Bye
- anslut till servern med systemvariabeln för lokal infil :
mysql --local-infile=1 -u root -p1
Denna variabel styr LOCAL-kapaciteten på serversidan för LOAD DATA-satser. Beroende på local_infile-inställningen vägrar eller tillåter servern lokal dataladdning av klienter som har LOCAL aktiverat på klientsidan. Att uttryckligen få servern att vägra eller tillåta LOAD DATA LOCAL-satser (oavsett hur klientprogram och bibliotek är konfigurerade vid build tid eller körtid), starta mysqld med local_infile inaktiverad respektive aktiverad. local_infile kan också ställas in vid körning.
- använd din databas och ladda 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)
Fungerar det?
Referenser:
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