Почему это утверждение MYSQL выдает ошибку? - PullRequest
5 голосов
/ 28 декабря 2010
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)

Файл там. Я даже вставил путь в консоль mysql. Права доступа правильные.

На самом деле, я даже тестировал его на пользователях root и root mysql.

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

Ответы [ 5 ]

6 голосов
/ 28 декабря 2010

Обратите внимание, что когда вы делаете LOAD DATA INFILE, MySQL ищет этот файл на сервере , а не на вашем клиентском компьютере.

Если вы хотите использовать LOAD DATA INFILE для загрузки файла на клиентском компьютере (а не на сервере), вы должны использовать LOAD DATA LOCAL INFILE.

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

2 голосов
/ 28 декабря 2010

Из руководства 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 голосов
/ 13 мая 2017

Если вы используете phpmyadmin, обязательно включите Use LOCAL keyword.Это сработало для меня.

0 голосов
/ 28 декабря 2010

Как сказал Марк Б, файл должен находиться в каталоге базы данных или быть доступным для чтения всем.Мало того, что файл должен быть читаемым, но MySQL нужны разрешения для чтения в каталог, где хранится текстовый файл.Каковы разрешения для / home / myuser / myproject / power / и его контейнеров до / home / myuser?Если в какой-то момент в этой цепочке разрешение будет отклонено, MySQL не сможет прочитать файл.

0 голосов
/ 28 декабря 2010

Хммм ... наверное глупый вопрос, но есть ли какие-нибудь невидимые символы в строке '/home.../ids-ads.txt'?

...