mysql - LOAD DATA LOCAL INFILE 仅有时有效

标签 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 命令上也会失败。

最佳答案

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

不要忘记在制作前将其关闭!

喂, 京东

关于mysql - LOAD DATA LOCAL INFILE 仅有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4120919/

相关文章:

mysql - 如何优化这个将左连接作为列的 mysql 查询?

php - 客户模型中 Magento 中的 loadByEmail 和加载方法问题

PHP/MYSQL - 使用准备好的语句删除数据库

mysql - PDO 双 LIKE 带参数

mysql - Laravel 获取带有参数绑定(bind)的 sql 查询

使用 ServiceStack ORMLite 的 MySql.Data.MySqlClient.MySqlException

MySQL 仅当不包含字符串时才更新 concat 字段值

php - 如何将 EAV 值传递给 Paypal 支付信息

magento - 按用户所在国家/地区阻止 magento 网站?

PHP 和 PDO : Which is faster? 正在获取 COUNT(*) 或 rowCount()?