OS: Ubuntu 12.04.1 LTS MySQL バージョン: 5.5.28-0ubuntu0.12.04.2
LOAD DATA LOCAL INFILE を実行しようとすると、エラー 1148 が発生します (使用されたコマンドは、この MySQL バージョンでは許可されていません) - ただし、次の状況でのみです。
- コマンドが PHP の wget cron ジョブを介して実行された場合 (ほとんどの場合失敗し、4 回に 1 回は回避します)
- ブラウザ セッションで PHP ファイルを介してコマンドを実行した場合 (2 回失敗し、通常は 3 回目で機能します)
スクリプトが正常に実行され、すぐに実行しようとすると正常に動作することがわかりますが、実行後5分以上待つと、取得するのに十分な回数更新するまで、再び失敗し始めますもう一度実行します。cronから毎回正常に実行する必要があります。
my.conf の [mysqld]、[mysql]、および [client] エントリの下に local-infile (local-infile=1 ではない) を追加し、サーバーを再起動しましたが、役に立ちませんでした。[client]の下に Loose-local-infile=1 と入力してみましたが、うまくいきません。
データベース フォルダーは別の場所 (/media/Data/mysql_data) に移動され、root によって所有されています。
インポート ファイルは、アクセス許可 0644 でローカル ボックスにダウンロードされます。
実行中のコマンドは次のとおりです。
LOAD DATA LOCAL INFILE
"/var/www/'.$import_dir.$table.'.csv"
INTO TABLE _PREP_'.$table.'
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY "\""
..$import_dir と $table は、インポート ファイルのパスと名前です。
他の誰かがこれを見たことがありますか?失敗した理由を確認するために表示できるログはありますか? 断続的にしか失敗しないのはなぜですか?
それはすべて少し奇妙です。記録のために、これは新しいボックスであり、スクリプトは常にこのように動作します。
すべての助けに感謝します。-ポールG