0

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

4

1 に答える 1

0

追加のフラグ128mysql_connectに追加すると、問題が解決します。詳細については、これを確認してください

于 2013-03-05T16:35:35.470 に答える