2016-05-31 6 views
1

Ich benutze MySQL in Ubuntu. Ich erhalte diesen Fehler beim Ausführen bestimmter Abfragen.Mysql machen --Secure-Datei-Priv-Option zu Null

Der MySQL-Server ist mit der --secure-Datei-priv Option ausgeführt wird, so dass es diese Anweisung nicht ausführen kann

Als ich SELECT @@secure_file_priv; ich /var/lib/mysql-files/ bekam in meinem MySQL-Server haben. Ich denke, ich muss dies zu NULL machen.

Dies ist die Abfrage Ich betreibe:

LOAD DATA INFILE :file INTO TABLE test_files 
COLUMNS TERMINATED BY ',' ENCLOSED BY '\"' 
LINES TERMINATED BY '\n'; 

Nun ist die Frage, wie man diese NULL machen?

+0

Welche Version von MySQL verwenden Sie ?. Siehe [secure_file_priv] (http://dev.mysql.com/doc/refman/5.7/en/server-variables.html#sysvar_secure_file_priv). – wchiquito

+0

Dies ist meine Version: 5.7.12 –

+0

Übrigens, ich sah dies [http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_secure_file_priv], aber ich bin nicht weiß, wie man NULL macht. –

Antwort

2

Versuchen:

mysql> SELECT VERSION(); 
+-----------+ 
| VERSION() | 
+-----------+ 
| 5.7.12-0 | 
+-----------+ 
1 row in set (0.00 sec) 

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

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

[mysqld] 
. 
. 
. 
secure_file_priv=NULL 
. 
. 
. 

Restart MySQL.

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

UPDATE

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

Datei: /var/lib/mysql-files/myfile.csv

1,"Row 1" 
2,"Row 2" 
3,"Row 3" 
mysql> DROP TABLE IF EXISTS `test_files`; 
Query OK, 0 rows affected, 1 warning (0.00 sec) 

mysql> CREATE TABLE IF NOT EXISTS `test_files` (
    -> `col0` INT, 
    -> `col1` VARCHAR(20) 
    ->); 
Query OK, 0 rows affected (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.01 sec) 
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0 

mysql> SELECT 
-> `col0`, 
-> `col1` 
-> FROM 
-> `test_files`; 
+------+-------+ 
| col0 | col1 | 
+------+-------+ 
| 1 | Row 1 | 
| 2 | Row 2 | 
| 3 | Row 3 | 
+------+-------+ 
3 rows in set (0.00 sec) 
+0

Vielen Dank für Ihre Antwort. Es hat sich zu NULL geändert. Aber immer noch bekomme ich den gleichen Fehler. –

+0

@ PrabhuKhannaMahadevan: Bitte aktualisieren Sie Ihre Frage und legen Sie die Abfrage, die den Fehler generiert. – wchiquito

+0

Die Abfrage wurde aktualisiert. Ich glaube, es gibt keine Probleme mit der Abfrage. Es funktioniert gut in anderen Servern. Es funktioniert nicht nur in meiner lokalen Maschine. –