【发布时间】:2010-03-10 20:02:03
【问题描述】:
我正在尝试使用 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
【问题讨论】:
-
只有在 PHP 中使用时才会失败吗?如果你从 MySQL 命令行客户端运行它是否有效?
-
@Mark Byers:从命令行可以正常工作。
-
php 是作为匿名系统用户运行(例如
nobody或www-data),还是作为您的用户名运行? -
@Tim Post:PHP 以
nobody运行。 -
可能是权限问题。请参阅 Rob 的回答和我对权限的评论。