我有一個LOAD DATA命令,可以在MySQL終端中正常工作。它在我的本地服務器提供的測試PHP文件中工作正常。它可以在同一臺服務器上的phpMyAdmin中正常工作。當從Magento運行時,它也會在同一臺服務器上崩潰,這是莫名其妙的。LOAD DATA LOCAL INFILE僅適用於
我已確認所有方法都使用相同的登錄憑據。如果我從查詢日誌中複製失敗的命令(包括從前連接的所有先前的查詢)並粘貼到任何其他方法中,它會再次神祕地工作。查詢本身不會出錯。
因此我推斷這個問題必須是權限之一。文件權限已設置並適用於同一帳戶上的其他實施。 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命令中失敗。
你可以發佈具體內容失敗嗎? – 2010-11-08 06:39:56
打開SQL日誌記錄,看看會發生什麼。你應該能夠遵循sql調用並確定是否有奇怪的事情發生。還要檢查登錄名,也許你有兩個登錄名'localhost',也許一個'%'每個都有不同的權限,load infile必須設置正確的權限。 – DeveloperChris 2010-11-08 06:43:24
@DeveloperChris。好主意尋找主機'%',但遺憾的是不存在。只有一個帳戶可以訪問這個特定的數據庫,當然,但我不使用它。 – clockworkgeek 2010-11-08 14:54:32