簡體   English   中英

MySQL LOAD DATA LOCAL INFILE期間的格式錯誤的數據包錯誤

[英]Malformed packet error during MySQL LOAD DATA LOCAL INFILE

我正在嘗試使用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

同樣的問題。 這是權限問題。

來自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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM