代码之家  ›  专栏  ›  技术社区  ›  dnagirl

mysql加载数据本地内嵌时出现格式错误的数据包

  •  1
  • dnagirl  · 技术社区  · 16 年前

    我尝试使用php将文件加载到mysql(v5.1.38)innodb表中 mysqli::query 和一个 LOAD DATA LOCAL INFILE 查询。查询返回“格式错误的数据包”错误代码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 回复  |  直到 13 年前
        1
  •  0
  •   rekire    13 年前

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

    PHP中的shell exec:

    'mysql --user=root --password=zxc db < /stuff.sql'
    

    材料.sql

    LOAD DATA LOCAL INFILE '/stuff.csv' INTO TABLE `stuff` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
    

    数据包格式错误。

    解决方案:

    chmod 777 /stuff.csv
    

    php在自己的权限级别上运行,而mysql无法访问stufacture.csv。

    如果你不喜欢吃饼干 chmod 777