【问题标题】:LOAD DATA INFILE from remote server getting error从远程服务器加载数据输入错误
【发布时间】:2018-06-07 04:05:23
【问题描述】:

尝试在MySQL Server 5.5 中使用以下命令将CSV 数据加载到远程MySQL Server,并使用PHP-5.6 PDO 连接。

LOAD DATA INFILE :file INTO TABLE test_csv COLUMNS 
TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';

但我收到以下错误:

PHP 警告:chown(): Unable to find uid for mysql in /var/www/proj/csvtodb.php 第 22 行 2017-12-26 09:21:18,

SQLSTATE[HY000]: 一般错误: 13 Can't get stat of '/tmp/csvfile-1.csv' (Errcode: 2)

请帮助我们解决此问题。

【问题讨论】:

  • 文件是在远程服务器上还是在客户端服务器上?如果在客户端服务器上,则需要使用LOAD DATA LOCAL INFILE
  • 第一个警告与 MySQL 查询无关,它来自脚本前面对 chown() 的调用。
  • @barmar: csv 文件仅在客户端服务器中

标签: php mysql pdo load-data-infile loaddata


【解决方案1】:

如果 CSV 文件位于运行脚本的 PHP 服务器上,而不是远程 MySQL 服务器上,则需要使用 LOAD DATA LOCAL INFILELOAD DATA INFILE 在 MySQL 服务器上查找文件。

【讨论】:

  • 我按照你所说的进行了更改,但我仍然收到以下错误 PHP 警告:chown(): Unable to find uid for mysql in /var/www/proj/csvtodb.php on line 22 PHP Warning : PDOStatement::execute(): LOAD DATA LOCAL INFILE 在第 445 行的 /var/www/proj/comm.php 中被禁止
  • chown() 错误是因为/etc/passwd 中没有用户名mysql,而您正在尝试执行chown($filename, "mysql"); 之类的操作
  • 我尝试了这个解决方案stackoverflow.com/questions/7638090/…,但仍然遇到同样的错误
  • 由于是某种 MySQL 配置问题,请尝试在 dba.stackexchange.com 中询问。
猜你喜欢
  • 2016-12-09
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 2018-03-07
  • 1970-01-01
相关资源
最近更新 更多