我有一个PHP脚本,我在其中上传一个CSV文件,并将这一行更新/插入行插入mysql数据库中,所有这些都在ubuntu 18.04服务器上,并且该PHP脚本已经工作了很多年,没有问题,该服务器已经工作了1年以上,几周前突然出现,服务器或软件上的任何更改均停止工作。
奇怪的是它没有产生任何错误,没有日志错误,什么也没有,所以我无法调试。
这几天前我读了很多书,没有任何运气,所以我不确定该怎么办。
在我的测试和测试类似问题中,我发现了这一点:
以下是使用的代码:
LOAD DATA LOCAL INFILE '/path/to/temp/file' INTO TABLE pagos_nuevos CHARACTER SET latin1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES
(cuenta, @pago, @fpago) SET pago = CAST(REPLACE(REPLACE(@pago,',',''),'$','') AS DECIMAL(10,2)), fpago = STR_TO_DATE(@fpago, '%d/%m/%Y')
正如我一开始所说的,这不是新服务器,也不是新代码,已经使用了很多年,当调试时,我只在屏幕上收到它:
Query: LOAD DATA LOCAL INFILE '/path/to/temp/file' INTO TABLE pagos_nuevos CHARACTER SET latin1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES
(cuenta, @pago, @fpago) SET pago = CAST(REPLACE(REPLACE(@pago,',',''),'$','') AS DECIMAL(10,2)), fpago = STR_TO_DATE(@fpago, '%d/%m/%Y') failed
0:
在“ 0:”的位置必须是错误代码,在“:”之后是错误的描述。
如果我删除了LOCAL,则会出现此错误:
Query: LOAD DATA LOCAL INFILE '/path/to/temp/file' INTO TABLE pagos_nuevos CHARACTER SET latin1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES
(cuenta, @pago, @fpago) SET pago = CAST(REPLACE(REPLACE(@pago,',',''),'$','') AS DECIMAL(10,2)), fpago = STR_TO_DATE(@fpago, '%d/%m/%Y')
not found (Errcode: 13 - Permission denied)
29:未找到文件'/ var / www / html / testing / unicomer / pagos / datos / pagos / pagos al 29.csv'(错误代码:13-权限被拒绝)
我对具有所有特权的用户进行了测试,但无法正常工作,因此我不知道这是mysql问题还是服务器问题。
非常感谢您的帮助。