我正在尝试使用PHP的mysqli::query和LOAD 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
答案 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