Подтвердить что ты не робот

Mysql load data infile не может получить stat файла Errcode: 2

Я просмотрел все и не нашел решения, любая помощь в этом была бы большой.

Query:

LOAD DATA INFILE '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' 
INTO TABLE `tba`.`tbl_name` 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(
field1, field2, field3
)

Ошибка:

Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2)

Примечание:

Я запускаю браузер MySQL Query в OSX 10.6.4, подключающийся к MySQL 5.x

Вещи, которые я пробовал:

  • Drag-н-падение
  • Chmod 777
  • Поместите в папку с 777 правами доступа а также файл с 777 разрешения
4b9b3361

Ответ 1

попробуйте использовать LOAD DATA LOCAL INFILE вместо LOAD DATA INFILE

else проверьте, что apparmor активен для вашего каталога

Ответ 2

У меня была аналогичная проблема. Резолюция была мягко уродливым взломом, но гораздо легче запомнить, чем обходные решения, при условии, что вы можете "судо". Во-первых, мне пришлось поместить входной файл в подкаталог mysql для используемой базы данных:

sudo cp myfile.txt /var/lib/mysql/mydatabasename

Это делает копию и оставляет "root" в качестве владельца файла. После перехода в mysql и выполнения USE mydatabasename, я смог заполнить соответствующую таблицу, используя

LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename;

Ответ 3

Использование параметра --local поможет с этим.

Пример: mysqlimport --local databasename file.txt -p

Источник: http://dev.mysql.com/doc/refman/5.1/en/load-data.html "Параметр -local заставляет mysqlimport читать файлы данных с хоста клиента"

Ответ 4

Для меня копирование содержимого в /tmp и использование этого в качестве исходной папки сделали трюк. Я использую MariaDB, и моя версия не позволяет использовать модификатор "LOCAL". Интересно, что предоставление доступа для чтения и записи в папку CSV тоже не работало.

Ответ 5

У меня была та же проблема при заполнении таблицы в mysql в экземпляре AWS.

В моем случае у меня был файл csv в самом экземпляре.

Помещение Абсолютного пути разрешило мою проблему.

Здесь строка из документации MySQL

Если указан LOCAL, файл считывается клиентской программой на клиентском хосте и отправляется на сервер. Файл можно указать как полное имя пути, чтобы указать его точное местоположение. Если задано как относительное имя пути, имя интерпретируется относительно каталога, в котором была запущена клиентская программа.

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