Я пытаюсь загрузить файл в таблицу innodb MySQL (v5.1.38), используя PHP mysqli :: query и запрос LOAD DATA LOCAL INFILE . Запрос возвращает код ошибки 2060 с ошибкой. Любые идеи, что не так?
Вот целевая таблица:
CREATE TABLE `zbroom`.`lee_datareceive` ( `a` varchar(45) NOT NULL, `b` varchar(45) NOT NULL, `c` varchar(45) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Вот запрос:
LOAD DATA LOCAL INFILE '/path/to/file.txt' INTO TABLE lee_datareceive FIELDS TERMINATED BY '\t';
Вот данные файла. Значения разделяются на вкладку:
t1 t2 t3 abc def ghi
та же проблема. это была проблема разрешения.
shell exec из php:
'mysql --user=root --password=zxc db < /stuff.sql'
stuff.sql
LOAD DATA LOCAL INFILE '/stuff.csv' INTO TABLE `stuff` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
Ошибки с неверными пакетами.
Решение:
chmod 777 /stuff.csv
PHP работает на собственном уровне разрешений, а mysql не получает доступ для чтения к stuff.csv
Вы получаете файл cookie, если вы ненавидите chmod 777