Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。(以上摘抄自菜鸟教程)
鉴于Lua的诸多优势,我想在接下来的开发中应用Lua去完成一些需要脚本实现的工作。本文将记录我在Mac上搭建Lua的开发环境搭建以及实现对mysql的数据库访问。
1. Lua安装
源码编译安装
1 2 3 4 5
| curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz tar zxf lua-5.3.0.tar.gz cd lua-5.3.0 make macosx test make install
|
由于mac的当前系统版本下,连root用户都无法在/usr目录下创建写文件,故需要到lua的Makefile文件中将所有需要创建到/usr目录下的文件改到本用户目录下,Makefile的部分配置信息如下:
1 2 3 4 5 6 7
| INSTALL_TOP= /usr/local INSTALL_BIN= $(INSTALL_TOP)/bin INSTALL_INC= $(INSTALL_TOP)/include INSTALL_LIB= $(INSTALL_TOP)/lib INSTALL_MAN= $(INSTALL_TOP)/man/man1 INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
|
将INSTALL_TOP的值改为~/任意目录
homebrew安装
mac下用这种方式安装肯定是最简单的,只是版本可能会稍微落后些
接下来我们创建一个 HelloWorld.lua 文件,代码如下:
执行以下命令:
输出结果为:
2. Lua连接mysql
Lua 数据库的操作库:LuaSQL。它是开源的,支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。
1 2 3 4 5 6
| wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz tar zxpf luarocks-2.2.1.tar.gz cd luarocks-2.2.1 ./configure; sudo make bootstrap sudo luarocks install luasocket luarocks install luasql-mysql
|
以上步骤中,sudo luarocks install luasql-mysql这一步在mac中会出错,报找不到mysql.h文件,如果是linux上可以用apt-get install lua-sql-mysql来安装,mac下,笔者经过研究采用的方式是先安装一个mysql数据库,然后去github上下载luasql的源码,解压后,进入目录编译安装。具体操作如下
将src目录下ls_mysql.c里的#include “mysql.h”改成如下路径:
随后将Makefile文件里的install:下的配置信息改成如下路径:
1 2 3
| install: mkdir -p /users/shizhouyong/program/luasql cp src/*.so /users/shizhouyong/program/luasql
|
最后
通过以上方式安装后笔者发现只能在/users/shizhouyong/program/luasql目录下执行
附上:luasql源码的github地址
3. Lua 连接MySql 数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| luasql = require "luasql.mysql" env = luasql.mysql() conn = env:connect("数据库名","用户名","密码","IP地址",端口) conn:execute"SET NAMES UTF8" cur = conn:execute("select * from role") row = cur:fetch({},"a") file = io.open("role.txt","w+"); while row do var = string.format("%d %sn", row.id, row.name) print(var) file:write(var) row = cur:fetch(row,"a") end file:close() conn:close() env:close()
|
通过以上方式安装后,笔者发现只能在/users/shizhouyong/program目录下执行引入luasql.mysql包的lua脚本,否则会报找不到mysql.so,具体原因笔者会持续研究。