Wenn die LOCAL-Funktion entweder auf der Server- oder auf der Clientseite deaktiviert ist, erhält ein Client, der versucht, eine LOAD DATA LOCAL-Anweisung auszugeben, die folgende Fehlermeldung:
ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side
Ich bin auf das gleiche Problem gestoßen, als ich die Textdatei pet.txt nach einem Tutorial von Mysql in die Pet-Tabelle laden möchte:https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
Nachdem ich online gesucht hatte, habe ich es mit diesen Schritten behoben:
- Setzen Sie die globalen Variablen mit diesem Befehl:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
- Aktuellen Server beenden:
mysql> quit
Bye
- Verbinden Sie sich mit dem Server mit der Systemvariable local-infile :
mysql --local-infile=1 -u root -p1
Diese Variable steuert die serverseitige LOCAL-Fähigkeit für LOAD DATA-Anweisungen. Abhängig von der local_infile-Einstellung verweigert oder erlaubt der Server das lokale Laden von Daten durch Clients, die LOCAL auf der Clientseite aktiviert haben time oder runtime), starten Sie mysqld mit deaktivierter bzw. aktivierter local_infile. local_infile kann auch zur Laufzeit gesetzt werden.
- verwenden Sie Ihre Datenbank und laden Sie die Datei in die Tabelle:
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)
Funktioniert es?
Referenzen:
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