MySQL LOAD DATA LOCAL INFILE期间格式错误的数据包错误

时间:2010-03-10 20:02:04

标签: php mysql

我正在尝试使用PHP的mysqli::queryLOAD DATA LOCAL INFILE查询将文件加载到MySQL(v5.1.38)innodb表中。查询返回“格式错误的数据包”错误代码2027.任何想法有什么问题?

这是目标表:

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
a   b   c
d   e   f
g   h   i

1 个答案:

答案 0 :(得分:0)

同样的问题。这是许可问题。

来自php的shell exec:

'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的读取权限

如果你讨厌chmod 777

,你会得到一个cookie