在Lua脚本中使用MySQL。

我需要在 Scientific Linux 6.4 服务器上的 pdns-recursor 中的 Lua 脚本中读取一个数据库表,该服务器已预加载 Lua。

显然,我必须使用 luarocks 安装 luasql。当我尝试安装 luasql 时,出现以下错误:

Checking Lua includes... lua.h not found
lua.h is not on the server.

我尝试卸载已安装的版本以便使用二进制安装,但这似乎破坏了系统,因为系统似乎将已安装的 Lua 用于所有操作(yum、rpm 等)。现在我必须重新加载操作系统。如何从嵌入式 Lua 中获得 MySQL 访问权限?

提前致谢。

点赞
用户2755919
用户2755919

我假设您已经检查过yum,看看luasql是否可通过yum获得;如果没有,应该先这样做,并尽可能通过yum进行安装。

你遇到问题的直接原因是luarocks会自动从源代码构建模块,这需要访问lua头文件。这些头文件不仅仅用于运行使用Lua的程序,因此它们不作为普通Lua包的一部分安装。我不熟悉Scientific Linux,但您可能可以通过安装一个名为lua-devlua-devellua-headers或某些变体的软件包获得它们。您还可能需要mySQL软件包(包括库和头文件)的支持。一旦您安装好这些软件包,再试一次。

你也可以尝试使用[LuaDist](http://luadist.org/),我发现它通常比luarocks更成熟,并且可以自动下载更多依赖项;特别是它可能不需要安装lua头文件,并且可以处理从源代码自动下载和安装lua本身。但是,它需要已安装CMake。

如果出于某种原因您无法安装所需的头文件并且无法让luarocks或luadist正常工作,那么您可以尝试手动下载和构建luaSQL。 Lua头文件可以在Lua 5.1源代码包和[LuaSQL 2.2](http://www.keplerproject.org/luasql/#download)中找到。假设Scientific Linux维护者没有过多定制他们随机的lua版本,则结果应与系统Lua安装兼容。

2013-09-06 23:43:37