从远程服务器加载数据输入错误

Posted

技术标签:

【中文标题】从远程服务器加载数据输入错误【英文标题】: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 文件仅在客户端服务器中 【参考方案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 中被禁止 见***.com/questions/7638090/… chown() 错误是因为/etc/passwd 中没有用户名mysql,而您正在尝试执行chown($filename, "mysql"); 之类的操作 我尝试了这个解决方案***.com/questions/7638090/…,但仍然遇到同样的错误 由于是某种 MySQL 配置问题,请尝试在 dba.stackexchange.com 中询问。

以上是关于从远程服务器加载数据输入错误的主要内容,如果未能解决你的问题,请参考以下文章

如何从夹具远程加载数据

将 PDF 文档从远程服务器加载到 base64 编码数据中

将数据加载到远程 DB2 服务器时出错

用 PHP 在服务器上加载远程数据

通过远程桌面从 Microsoft SQL 数据库读取数据。 R

在不使用 S3 存储桶的情况下将数据从远程服务器的 .gz 文件加载到 redshift 的 postgresql 实例?