2014-10-31 3 views
0

Я подключение к базе данных MySQL из Lua с помощью:Как подключиться к Mysql из Lua с локальным-INFILE = 1

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

но вариант локального входной_файл не активирован, так что мои запросов, используя LOAD DATA дон Не работай. Я пытался поставить линии

local-infile = 1 

в файле my.cnf в поле [клиента], но он по-прежнему не работает. FYI: Я использую linux и mysql 5.1.

ответ

1

Я прошел ту же ситуацию на прошлой неделе. Запрос LOAD DATA INFILE работал на Mac OSX, но я не мог заставить его работать на Ubuntu. Единственный способ заставить его работать - добавить одну строку кода в проект LuaSQL и перекомпилировать ее.

Я использовал функцию водителя MySQL в mysql_options (вы можете проверить его прототип в mysql.h файл, вероятно, расположенного по адресу /usr/include/mysql), чтобы включить local-infile. Вы можете проверить код на repository.

Чтобы скомпилировать и установить этот обходной путь, вы должны загрузить файлы:

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

Для компиляции и установки:

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

Примечание: В зависимости от того, где Lua и Папки MySQL расположены, вам может потребоваться установить правильные значения для LUA_LIBDIR, LUA_DIR, LUA_INC, DRIVER_LIBS и DRIVER _INCS в файле config в папке LuaSQL.

Надеюсь, это поможет.