2016-05-31 75 views
1

저는 우분투에서 MySQL을 실행 중입니다. 특정 쿼리 집합을 실행하는 동안이 오류가 발생합니다. 내가 /var/lib/mysql-files/있어 내 MySQL 서버에 SELECT @@secure_file_priv;를 한 때이 문mysql이 --secure-file-priv 옵션을 NULL로 설정합니다.

을 실행할 수 있도록

MySQL 서버가 --secure 파일-priv에 옵션으로 실행됩니다. 나는 이것을 NULL으로 만들어야한다고 생각합니다.

나는 쿼리를 실행하고있다 :

이제 문제는이 NULL을 만드는 방법입니다
LOAD DATA INFILE :file INTO TABLE test_files 
COLUMNS TERMINATED BY ',' ENCLOSED BY '\"' 
LINES TERMINATED BY '\n'; 

?

+0

사용하고있는 MySQL의 버전은 무엇? [secure_file_priv] (http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_secure_file_priv)를 참조하십시오. – wchiquito

+0

이것은 나의 버전입니다 : 5.7.12 –

+0

그건 그렇고,이 [http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_secure_file_priv]을 보았습니다. 그러나 저는 아닙니다. 이 NULL을 만드는 방법을 알고 있어야합니다. –

답변

2

시도 :

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) 

변경 파일 : /etc/mysql/my.cnf

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

다시 시작 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) 

파일 : /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

답장을 보내 주셔서 감사합니다. 그것은 NULL로 변경되었습니다. 하지만 여전히 동일한 오류가 발생합니다. –

+0

@PrabhuKhannaMahadevan : 질문을 업데이트하고 오류를 생성하는 쿼리를 넣으십시오. – wchiquito

+0

쿼리를 업데이트했습니다. 나는 쿼리에 문제가 없다고 생각한다. 그것은 다른 서버에서 잘 작동합니다. 내 로컬 컴퓨터에서만 작동하지 않습니다. –