2016-06-02 29 views
10

Sto eseguendo MySQL 5.7 su un computer Windows 10. Ho letto attraverso tutti i thread SO su questo argomento e ancora non ho capito come ottenere i miei dati per caricare e superare questo errore:Disabilita priv sicuro per il caricamento dei dati su MySQL

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

Ho 1) controllato le impostazioni per modificare loro di essere in grado di caricare dalla directory in cui ho salvato il mio set di dati, 2) ha aperto MySQL come amministratore e controllato la riga di comando e ho confermato che il file sicuro punta effettivamente alla mia directory, 3) e confermato nel file init che sta puntando alla directory corretta che contiene il mio file. Ho provato a cambiare la posizione del set di dati in modo che fosse in una nuova cartella e ha confermato che era stato spostato lì con i metodi di cui sopra, e ancora non ha funzionato.

Qualsiasi aiuto sarebbe gradito, grazie.

+0

file ini può essere sovrascritta argomenti della riga di comando. è necessario fare 'mostra variabili come '% secure%'' per vedere quale sia l'impostazione "live". –

+0

Ho fatto "MOSTRA VARIABILI COME 'secure_file_priv';" e mi ha restituito la directory in cui è salvato il mio set di dati. Farlo nella riga di comando attuale mostra gli stessi risultati. – dataelephant

+0

Esegue il comando esatto restituisce: "require_secure_transport": "off", "secure_auth": "on", "secure_file_prive": la directory in cui è salvato il file. – dataelephant

risposta

7

Non riesco a riprodurre il problema.

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 

di modifica del file: /etc/mysql/my.cnf

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

Riavvia 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 

Vedi 6.1.4 Server System Variables :: secure_file_priv

+0

Grazie per la risposta, tuttavia mi sono reso conto che alla fine si trattava di un problema di ritorno invece di barre in avanti * facepalm. * Ho dato alla tua risposta una stella e il segno di spunta per il lavoro :) – dataelephant

0
  1. privilegi Controllo del sistema operativo sulla directory che si sta importando da.
  2. Quando si tenta di importare i dati tramite "CVS utilizzando LOAD DATA" selezionare l'opzione locale.