0

以下を使用して、lua から mysql データベースに接続しています。

mysql = require "luasql.mysql"
local env = mysql.mysql()
local conn = env:connect(database,userName,password)

しかし、オプション local-infile がアクティブ化されていないため、LOAD DATA を使用したリクエストが機能しません。ラインを入れてみました

local-infile = 1

フィールド [client] の my.cnf ファイルにありますが、それでも機能しません。参考までに: Linux と mysql 5.1 を使用しています。

4

1 に答える 1

1

私も先週同じ状況を経験しました。クエリLOAD DATA INFILEは Mac OSX では機能しましたが、Ubuntu では機能しませんでした。私が見つけた唯一の方法は、LuaSQL プロジェクトに 1 行のコードを追加して再コンパイルすることでした。

を有効にするために、MySQL ドライバーの関数(おそらく にあるファイルでmysql_optionsそのプロトタイプを確認できます) を使用しました。コードはリポジトリで確認できます。mysql.h/usr/include/mysqllocal-infile

この回避策をコンパイルしてインストールするには、次のファイルをダウンロードする必要があります。

$ wget https://github.com/rafaeldias/luasql/archive/master.zip
$ unzip master.zip

コンパイルしてインストールするには:

$ cd luasql-master/
$ make
$ sudo make install

: Lua および MySQL フォルダーの場所によっては、LuaSQL フォルダー内のファイルの LUA_LIBDIR、LUA_DIR、LUA_INC、DRIVER_LIBS、および DRIVER_INCS に適切な値を設定する必要がある場合がありconfigます。

それが役に立てば幸い。

于 2015-01-09T05:54:57.567 に答える