0

perl プログラムを使用して、ファイルのリストを mysql のテーブルにアップロードする簡単なスクリプトを作成しています。通常、ファイルをアップロードする必要があるときはいつでも、フラグ「--local-infile」を使用して mysql を手動で起動できます。DBIを使用してmysqlデータベースのテーブルの情報を取得するためにperlも使用します。

$dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);

しかし、ファイルのアップロードに必要なフラグを指定して perl を使用して mysql を起動する方法がわかりません。既にローカルを有効にして、perl で mysql への接続を開始する方法はありますか? それとも、アップロード ファイルを有効にするために mysql で実行できるコマンドはありますか? 私はリモート ホストで実行していることを付け加えておく必要があります。そのため、my.cnf ファイルへの編集アクセス権や mysql のルート アクセス権がありません。

4

2 に答える 2

1

はいあります:

$dbh = DBI->connect("DBI:mysql:$db:$host;mysql_local_infile=1", $user, $pass);

この方法で他の(ローカル)変数を渡すこともできます。DBD::mysqlのドキュメントを参照してください。

于 2012-12-03T11:41:00.973 に答える
0

まず、my.cnfのclientの下に以下のコードを追加します。

[クライアント]

Loose-local-infile=1

次にパラメータを追加します。

mysql_local_infile=>1

下、

$dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass, {mysql_local_infile=>1, RaiseError => 0, PrintError => 0, mysql_enable_utf8 => 1});

他のパラメータは私のコードに属していますが、DBI->connectの使用例に入れました。

于 2014-10-24T09:02:57.297 に答える