2010-12-27 26 views
5
mysql> LOAD DATA INFILE '/home/myuser/myproject/power/ids-ads.txt' INTO TABLE ids_ads FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; 

ERROR 29 (HY000): File '/home/myuser/myproject/power/ids-ads.txt' not found (Errcode: 13) 

Tệp ở đó. Tôi thậm chí dán đường dẫn vào giao diện điều khiển mysql. Các điều khoản là chính xác.Tại sao câu lệnh MYSQL này lại cho tôi một lỗi?

Trong thực tế, tôi thậm chí đã thử nghiệm nó trên người dùng root và mysql gốc.

-rw-r--r-- 1 myuser myuser 15893 2010-12-26 20:56 ids-ads.txt 
+0

Các tệp trên cùng một máy? Không phải là một gắn kết hay bất cứ điều gì như thế? – Steve

+0

Chỉ một máy. thiết lập rất đơn giản – TIMEX

+0

Và không có khoảng trống trong tên dự án? – Steve

Trả lời

6

Lưu ý rằng khi bạn làm LOAD DATA INFILE, MySQL đang tìm tệp đó trên máy chủ - không phải trên máy khách của bạn.

Nếu bạn muốn sử dụng LOAD DATA INFILE để tải tệp trên máy khách (chứ không phải máy chủ), bạn phải sử dụng LOAD DATA LOCAL INFILE.

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0

Hmmm ... có lẽ là một câu hỏi ngu ngốc, nhưng có bất kỳ ký tự vô hình nào trong chuỗi '/home.../ids-ads.txt' không?

+0

Tôi không nghĩ vậy. có vẻ như văn bản khá thường xuyên. – TIMEX

2

Từ hướng dẫn MySQL:

For security reasons, when reading text files located on the server, the files 
must either reside in the database directory or be readable by all. Also, to use 
LOAD DATA INFILE on server files, you must have the FILE privilege. For non-LOCAL 
load operations, if the secure_file_priv system variable is set to a nonempty 
directory name, the file to be loaded must be located in that directory. 

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0

Như Marc B cho biết, các tập tin cần phải được trong thư mục cơ sở dữ liệu hoặc có thể đọc được bởi tất cả. Không chỉ các tập tin cần phải được đọc, nhưng MySQL cần quyền để đọc vào thư mục mà tập tin văn bản được lưu trữ. Các quyền trên/home/myuser/myproject/power/và các vùng chứa của nó lên đến/home/myuser là gì? Nếu, tại bất kỳ điểm nào trong chuỗi đó, quyền sẽ bị từ chối, sau đó MySQL sẽ không thể đọc tệp.

0

Nếu bạn đang sử dụng phpmyadmin, hãy đảm bảo Bật Use LOCAL keyword. Điều này làm việc cho tôi.

Các vấn đề liên quan