MySQL进入outfile不能从PHP应用程序工作,但在mysql中工作

时间:2013-10-04 07:22:48

标签: php mysql linux centos

我正在尝试使用PHP应用程序执行“INTO OUTFILE”查询以在Linux CentOS计算机上输出csv文件。

以下是查询:

(SELECT 'Date', 'Customer', 'Customer name', 'Commission', 'User', 'Value') UNION (SELECT t1.`DATE`, t1.`CUSTOMER`, t1.`CUSTOMERNAME`, t1.`COMMISSION`, t1.`USER`, t1.`VALUE` FROM `raws` t1, `roles` t2 ORDER BY `CUSTOMER`, `CUSTOMERNAME`, `COMMISSION`, `USER`, `DATE` ASC INTO OUTFILE '/var/www/html/myapp/downloads/524e6b306c451.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ')

以下是该问题的一些细节:

  • mysql运行查询正常并在正确的目录"/var/www/html/myapp/downloads"
  • 输出.csv文件
  • 然而,PHP应用程序返回错误"SQLSTATE[HY000]: General error: 1 Can't create/write to file"
  • mysql和PHP都使用相同的用户root
  • 运行
  • PHP应用程序在使用XAMPP的Windows计算机上正常运行
  • 如果我排除"into outfile"查询,则会运行PHP应用。

基于以上所述,我确信它与我的CentOS机器上的文件权限有关。但是,即使在我完成chmod -R 777 /var/www之后,我仍然会遇到同样的错误。

请提供帮助,并提前致谢

编辑:

ls -la /var/www/html/myapp/downloads如下所示:

drwxrwsrwt. 2 mysql mysql  4096 Oct  4 10:37 .
drwxrwsrwx. 9 root  www    4096 Oct  4 07:56 ..
-rwxrwxrwx. 1 mysql mysql 55353 Oct  4 10:36 524e67124bba4.csv
-rwxrwxrwx. 1 mysql mysql 51195 Oct  4 10:04 524e7699a69a7.csv
-rwxrwxrwx. 1 mysql mysql 51195 Oct  4 10:07 524e7737c54ad.csv
-rwxrwxrwx. 1 mysql mysql 51195 Oct  4 10:08 524e7782a21a3.csv

2 个答案:

答案 0 :(得分:0)

可能是权限错误。 MySQL可能无法访问您的/ tmp目录以创建临时文件。确保/ tmp由root拥有,而粘滞位在/ tmp目录中设置。键入以下命令以查看它是否修复了错误:

chown root:root /tmp
chmod 1777 /tmp

并重启mysql服务器

答案 1 :(得分:0)

General error: 1 Can't create/write to file errcode:2这会用chown来解决它。

谢谢&问候,
Alok Thaker