如何在Lua中使用local-infile=1连接到Mysql

我正在使用以下 lua 代码从 mysql 数据库连接:

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

但是选项 local-infile 没有激活,因此我使用 LOAD DATA 的请求无法正常工作。我尝试在 [client] 字段中的 my.cnf 文件中加入以下行:

local-infile = 1

但它仍然不能正常工作。FYI:我正在使用 linux 和 mysql 5.1。

点赞
用户1377699
用户1377699

上周我遇到了同样的情况。查询语句 LOAD DATA INFILE 在 Mac OSX 上可以运行,但是在 Ubuntu 上却无法运行。我找到了解决方法,只需要在 LuaSQL 项目中添加一行代码并重新编译即可。

我使用了MySQL驱动程序的 mysql_options 函数(您可以在 mysql.h 文件中查看其原型,可能位于 /usr/include/mysql 目录下),来启用 local-infile。您可以在 仓库 中查看代码。

要编译和安装此解决方法,您应该下载文件:

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

要编译和安装:

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

:根据您的Lua和MySQL文件夹所在位置,您可能需要在 LuaSQL 文件夹的 config 文件中设置 LUA_LIBDIR、LUA_DIR、LUA_INC、DRIVER_LIBS 和 DRIVER_INCS 的正确值。

希望这能帮助您。

2015-01-09 05:54:57