2016-05-01 39 views
0

MySQLからLOAD DATA LOCAL INFILE文を使用しようとしていますが、「使用されているコマンドはこのMySQLバージョンでは許可されていません」というエラーが表示されます。MySQLとLOAD DATA INFILEでPDOが失敗する

データファイルは、MySqlを実行しているサーバーに対してローカルです。 私はMySql Workbench(同じマシンにインストールされている)から同じコマンドを実行することができ、正常に動作します。これは、サーバーがコマンドを受け入れるようにセットアップされていることを示唆しており、問題はおそらく私のPHP PDOクライアント(同じマシン上)にある可能性があります。あなたが見ることができるように、私は、オブジェクトを作成するとき、私はPDO::MYSQL_ATTR_LOCAL_INFILEを設定しています

function getDb() { 
    $dsn  = 'mysql:host=localhost;dbname=my_db'; 
    $username = 'username'; 
    $password = 'password'; 
    $options = [PDO::MYSQL_ATTR_LOCAL_INFILE => true]; 
    return new PDO($dsn, $username, $password, $options); 
} 

は、ここで私はPDOを作成するコードです。

LOAD DATA LOCAL INFILE '/media/working/my_file.psv' 
INTO TABLE MY_TABLE 
FIELDS TERMINATED BY '|' 
IGNORE 1 LINES 

任意のアイデア:

ここでは、SQLコマンドがですか?

+0

http://stackoverflow.com/questions/10762239/mysql-enable-load-data-local-infile – Mihai

答えて

0

私はMySql Workbench(同じマシンに にインストールされています)から同じコマンドを実行でき、うまく動作します。

  • サーバには1つのmysqlバージョンしかありませんか?
  • そのスクリプトとコンソールのあなたは同じ 権限を持つ同じdbユーザーを使用していますか?
+0

はいはい - 一つだけのmysqldプロセスが実行されている、と私は(ルート)のみのユーザーを持っています –

関連する問題