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 项目中添加一行代码并重新编译它。

我使用 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 文件夹所在的位置,您可能需要在configLuaSQL 文件夹中的文件中为 LUA_LIBDIR、LUA_DIR、LUA_INC、DRIVER_LIBS 和 DRIVER_INCS 设置正确的值。

希望能帮助到你。

于 2015-01-09T05:54:57.567 回答