2010-12-27 13 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) 

Plik jest dostępny. Wkleiłem ścieżkę do konsoli mysql. Uprawnienia są poprawne.Dlaczego ta instrukcja MYSQL daje mi błąd?

W rzeczywistości przetestowałem go nawet na roocie użytkownika root i mysql.

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

Czy pliki znajdują się na tym samym komputerze? Nie góra ani nic takiego? – Steve

+0

Tylko jedna maszyna. bardzo prosta konfiguracja – TIMEX

+0

Brak spacji w nazwie projektu? – Steve

Odpowiedz

6

Należy pamiętać, że po wykonaniu polecenia LOAD DATA INFILE, MySQL szuka tego pliku na serwerze - nie na komputerze klienta.

Jeśli chcesz użyć LOAD DATA INFILE do załadowania pliku znajdującego się na komputerze klienta (a nie na serwerze), musisz użyć LOADAL INFILE DANYCH DANYCH.

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

0

Hmmm ... prawdopodobnie głupie pytanie, ale czy są jakieś niewidoczne znaki w ciągu "/home.../ids-ads.txt"?

+0

Nie sądzę. wydaje się dość regularnym tekstem. – TIMEX

2

z podręcznika 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

Jak powiedział Marc B, plik musi znajdować się w katalogu bazy danych lub czytelny dla wszystkich. Plik musi być nie tylko czytelny, ale także musi mieć uprawnienia do odczytu w katalogu, w którym przechowywany jest plik tekstowy. Jakie są uprawnienia na/home/myuser/myproject/power/i jego kontenerach do/home/myuser? Jeśli w dowolnym momencie tego łańcucha zezwolenie zostanie odrzucone, wówczas MySQL nie będzie w stanie odczytać pliku.

0

Jeśli używasz phpmyadmin, upewnij się, że Włącz Use LOCAL keyword. To działało dla mnie.

Powiązane problemy