LOAD DATA LOCAL INFILE有时只能工作

时间:2010-11-08 02:47:53

标签: mysql magento pdo phpmyadmin load-data-infile

我有一个LOAD DATA命令,可以在MySQL终端中正常工作。它在我的本地服务器提供的测试PHP文件中工作正常。它在同一台服务器上的phpMyAdmin中工作正常。当从Magento运行时,它也会在同一台服务器上发生莫名其妙的故障。

我已确认所有方法都使用相同的登录凭据。如果我从查询日志中复制失败的命令(包括之前连接的所有先前查询)并粘贴到任何其他方法,它会再次神秘地工作。查询本身不能出错。

因此我推断出问题必须是权限之一。文件权限已设置并适用于同一帐户上的其他实现。 Magento正在使用pdo_mysql作为它的连接。如果我在测试文件中复制它,它可以工作。 Magento必须设置一些干扰的参数。

我得到的错误是SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version。我必须使用“LOCAL”修饰符关键字,因为我无法保证数据库服务器可以访问。

最近的上一个问题在这里SO concerns drupal,错误是不同的但我记得drupal也使用pdo_mysql连接,也许它是相关的。 Magento is this thread上唯一另一个提到此错误的错误,它也在LOAD DATA LOCAL INFILE命令中失败。

1 个答案:

答案 0 :(得分:2)

根据@DeveloperChris的建议,您可以在Varien_Db_Adapter_Pdo_Mysql类(lib\Varien路径)中启用Magento中的SQL日志记录。将$_debug$_logAllQueries类变量更改为true。您还可以在$_debugFile中更改记录查询的文件路径。

生产前别忘了关掉它!

HTH, JD

相关问题