2012-06-13 3 views
3

Ubuntu 12.04에서 LAMP를 사용하고 있습니다. MySQL (myserver @ localhost)에서 새 사용자를 만들고 그 사용자에게 데이터베이스에 ALL을 부여했습니다. 모든 사용자가 읽을 권한이 설정된 텍스트 파일이 있습니다. 내가 사용LOAD DATA INFILE로 MySQL 데이터베이스에 데이터를로드 할 수 없습니다.

쿼리는 다음과 같습니다

: 나는 데이터베이스에 텍스트 파일에서 데이터를로드 할 때, 그것은 "(YES 암호를 사용하여) 액세스 사용자 myserver를 '@'localhost를 '거부'라고
LOAD DATA INFILE "~/text/member_info.txt" INTO TABLE member FIELDS TERMINATED BY '|'; 

PHP에서 일부 루프의 문제를 해결할 수 있지만 'LOAD DATA INFILE'이 작동하지 않는 이유는 무엇입니까?

감사합니다. MySQL의 다큐 멘 테이션 코멘트에서 mysql doc

:

+0

당신이 사용하고있는 쿼리를 게시 할 수 있습니까? – Nico

+0

암호를 확인 – Devart

+0

@ Nico – CluelessNoob

답변

1

이 우분투 LTS 12.04에서 사용하는 MYSQL 5.5 버전 때문이다

당신은 재 컴파일 PHP없이 PHP의 최신 버전과 LOCAL LOAD 데이터를 사용할 수 있습니다

.

mysql_connect()의 다섯 번째 매개 변수로 128 (CLIENT_LOCAL_FILES 상수 값)을 전달하면 클라이언트 측에서 LOAD DATA LOCAL이 활성화됩니다.

예 : $ dbh = mysql_connect ($ server, $ user, $ pass, false, 128);

PHP 4.3 이상인 경우.

사실, mysql_connect()는 쓸모 없으며 mysqli를 사용하여 솔루션을 찾을 수 없습니다.

그래서 결국 this 누가 문제를 해결할 수 있습니다.

grant file on *.* to [email protected] identified by 'myuser'; 

이제 $ mysqli-> 쿼리 ("LOAD 데이터 INFILE '". $ proxy_file_name_path. "') 테이블에 mytable (myfield 무시"

관련 문제