2016-06-02 4 views
10

Ich betreibe MySQL 5.7 auf einem Windows 10-Rechner. Ich habe zu diesem Thema durch alle SO Threads gelesen und haben noch nicht herausgefunden, wie meine Daten zu erhalten Vergangenheit diesen Fehler zu laden und zu erhalten:Deaktivieren Sie priv für das Laden von Daten auf MySQL

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

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

Alle und alle Hilfe wäre willkommen, danke.

+0

INI-Datei kann durch Befehlszeilenargumente außer Kraft gesetzt werden. Sie müssen Variablen wie '% secure%' anzeigen, um zu sehen, was die Einstellung "live" ist. –

+0

Ich habe "SHOW VARIABLES LIKE 'secure_file_priv';" und es hat mir das Verzeichnis zurückgegeben, in dem mein Dataset gespeichert ist. Wenn Sie dies in der eigentlichen Befehlszeile tun, werden dieselben Ergebnisse angezeigt. – dataelephant

+0

Wenn Sie den genauen Befehl ausführen, wird Folgendes zurückgegeben: "require_secure_transport": "off", "secure_auth": "on", "secure_file_prive": Das Verzeichnis, in dem meine Datei gespeichert wird. – dataelephant

Antwort

7

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/ 
. 
. 
. 

Restart MySQL.

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 Server System Variables :: secure_file_priv

+0

Danke für die Antwort, aber ich erkannte am Ende war es ein Problem von hinten statt vorwärts Schrägstriche * facepalm. * Ich gab Ihrer Antwort einen Stern und das Häkchen für die Arbeit :) – dataelephant

0
  1. prüfen OS Rechte auf Verzeichnis, von dem Sie importieren.
  2. Wenn Sie versuchen, Ihre Daten über "CVS mit LOAD DATA" zu importieren, wählen Sie die Option local.
Verwandte Themen