wake-up-neo.net

Deaktivieren Sie die Sicherheitsberechtigung für das Laden von Daten in MySQL

Ich verwende MySQL 5.7 auf einem Windows 10-Computer. Ich habe alle SO - Threads zu diesem Thema durchgelesen und habe immer noch nicht herausgefunden, wie ich meine Daten laden kann und an diesem Fehler vorbeikomme:

Error Code: 1290. The MySQL server is running with the --secure-file-priv 
option so it cannot execute this statement

Ich habe 1) die Einstellungen überprüft, um sie aus dem Verzeichnis zu laden, in dem ich mein Dataset gespeichert habe, 2) hat MySQL als Administrator geöffnet, die Befehlszeile überprüft und bestätigt, dass die sichere Datei tatsächlich darauf verweist mein Verzeichnis, 3) und in der init-Datei bestätigt, dass es auf das richtige Verzeichnis verweist, das meine Datei enthält. Ich habe versucht, den Speicherort des Datensatzes so zu ändern, dass er sich in einem neuen Ordner befindet, und ich habe bestätigt, dass er mit den oben genannten Methoden dorthin verschoben wurde und trotzdem nicht funktioniert hat.

Jede Hilfe wäre willkommen, danke.

13
dataelephant

Ich kann das Problem nicht reproduzieren.

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.13    |
+-----------+
1 row in set (0,00 sec)

mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| NULL                      |
+---------------------------+
1 row in set (0,00 sec)

-- USE ...

mysql> LOAD DATA INFILE '/var/lib/mysql-files/myfile.csv'
    -> INTO TABLE `test_files`
    -> COLUMNS TERMINATED BY ',' ENCLOSED BY '\"'
    -> LINES TERMINATED BY '\n';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv
option so it cannot execute this statement

Datei ändern: /etc/mysql/my.cnf

[mysqld]
.
.
.
secure_file_priv=/var/lib/mysql-files/
.
.
.

Starten Sie MySQL neu. 

mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/     |
+---------------------------+
1 row in set (0,00 sec)

mysql> LOAD DATA INFILE '/var/lib/mysql-files/myfile.csv'
    -> INTO TABLE `test_files`
    -> COLUMNS TERMINATED BY ',' ENCLOSED BY '\"'
    -> LINES TERMINATED BY '\n';
Query OK, 3 rows affected (0,00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

Siehe 6.1.4 Serversystemvariablen :: secure_file_priv

11
wchiquito

Bei MACOSX füge .my.cnf zu deinem Home-Verzeichnis mit dem Inhalt hinzu: 

[mysqld_safe]
[mysqld]
secure_file_priv=""

https://github.com/Homebrew/homebrew-versions/issues/1552

4
ShQ

Dies funktioniert in MacOs Sierra 10.12.6:

verwenden Sie den Befehl 

mysql --help | more

und suchen Sie nach einer Zeile, in der sie steht: 

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf 
~/.my.cnf

In meinem Fall habe ich versucht, eine my.cnf im Home-Verzeichnis zu erstellen, aber es hat nicht funktioniert. Die einzige Lösung, die ich gefunden habe, ist das Erstellen der Datei im Ordner etc mit 

Sudo vim /etc/my.cnf

und hineinlegen 

[mysqld_safe]
[mysqld]
secure-file-priv = ""

Dann können Sie überprüfen, ob alles funktioniert 

select @@GLOBAL.secure_file_priv;

in mysql und überprüfen Sie, ob der Wert leer ist und sich von NULL unterscheidet. 

Speichern Sie schließlich die Dateien im Verzeichnis/tmp und verschieben Sie sie in das gewünschte Verzeichnis. Alternativ (aber möglicherweise unsicher) verwenden 

chmod 1777 dir

dabei ist dir der Name des Verzeichnisses, in das Sie die Dateien schreiben. 

3
Galuoises

Beachten Sie, dass unter Windows die Einstellung 'secure_file_priv' auf einen anderen Pfad gesetzt oder ganz deaktiviert wird, indem Sie Folgendes festlegen:

secure_file_priv=""

funktioniert möglicherweise nicht, wenn der MySQL-Dienst unter einem Konto mit geringen Berechtigungen ausgeführt wird (Standardinstallation von 5.7). Sie können dies ändern, indem Sie in den Services unter Eigenschaften -> Anmelden das Konto "Lokales System" auswählen.

0
Morey
  1. Überprüfen Sie die Betriebssystemberechtigungen für das Verzeichnis, aus dem Sie importieren.
  2. Wenn Sie versuchen, Ihre Daten über "CVS mittels LOAD DATA" zu importieren, wählen Sie die Option local. 
0
MAS9000