luamysql 安装

 lua版本:lua-5.1.5,下载链接:http://www.lua.org/ftp/lua-5.1.5.tar.gz
 luamysql版本:luasql-2.1.1,下载链接:http://files.luaforge.net/releases/luasql/luasql/LuaSQL2.1.1/luasql-2.1.1.tar.gz
 系统:centos 7
1、下载lua5.1.5以及luamysql2.1.1

2、解压lua:tar zxvf lua-5.1.5.tar.gz

3、进入lua-5.1.5目录,安装:sudo make linux && make install,安装完成后,lua相关路径信息如下:
   $ whereis lua
   lua: /usr/bin/lua /usr/lib/lua /usr/local/bin/lua /usr/local/lib/lua /usr/share/lua /usr/share/man/man1/lua.1.gz
4、解压luasql:tar zxvf  luasql-2.1.1.tar.gz

5、进入luasql目录,因为只需要对mysql的支持,因此对config文件进行修改, 去掉T= mysql前面的注释,同时 注释掉T= sqlite3,同时针对本机上mysql的安装路径信息修改以下信息:DRIVER_LIBS= -L/usr/lib/mysql -lmysqlclient -lz
   DRIVER_INCS= -I/usr/include/mysql,可通过whereis mysql查看,例如我的机器是:
   $ whereis mysql
   mysql: /usr/bin/mysql /usr/lib/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

   同时在WARN= -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic 后面增加-Wno-long-long,否则可能出现错误:
   In file included from src/ls_mysql.c:19:
   /usr/include/mysql/mysql.h:130: 警告:ISO C90 不支持‘long long’

6、接下来执行安装:sudo make && make install,如果make是出现以下错误提示:
   relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
   ... could not read symbols: Bad value

   编译器提示:recompile with -fPIC

   解决方式:

   在config文件里的CFLAGS里加上 -fPIC选项:CFLAGS= -fPIC -O2 $(WARN) -I$(COMPAT_DIR) $(DRIVER_INCS) $(INCS) $(DEFS)


   安装成功会看到:

   mkdir -p /usr/local/lib/lua/5.1/luasql
   cp src/mysql.so /usr/local/lib/lua/5.1/luasql

   也就所说mysql.so现在以及存在与 /usr/local/lib/lua/5.1/luasql目录下的,当我们进行测试,可能会遇到错误:

   stdin:1: module ‘luasql.mysql’ not found:
   no field package.preload['luasql.mysql']
   no file ‘./luasql/mysql.lua’
   no file ‘/usr/share/lua/5.1/luasql/mysql.lua’
   no file ‘/usr/share/lua/5.1/luasql/mysql/init.lua’
   no file ‘/usr/lib/lua/5.1/luasql/mysql.lua’
   no file ‘/usr/lib/lua/5.1/luasql/mysql/init.lua’
   no file ‘./luasql/mysql.so’
   no file ‘/usr/lib/lua/5.1/luasql/mysql.so’
   no file ‘/usr/lib/lua/5.1/loadall.so’
   no file ‘./luasql.so’
   no file ‘/usr/lib/lua/5.1/luasql.so’
   no file ‘/usr/lib/lua/5.1/loadall.so’

   那我们就进入目录’/usr/lib/lua/5.1,建立文件夹luasql,并将mysql.so拷贝进来即可。
要在 Lua 中写入 MySQL,您需要使用 Lua MySQL 驱动程序。目前有多个 MySQL 驱动程序可供选择,如 LuaSQLluasql-mysql 等。在这里,我们以 luasql-mysql 为例。 首先,您需要安装 luasql-mysql 驱动程序。您可以使用 LuaRocks 进行安装,命令如下: ``` luarocks install luasql-mysql ``` 接下来,您可以使用以下代码来连接 MySQL 数据库并写入数据: ```lua local mysql = require "luasql.mysql" -- 连接到 MySQL 数据库 local env = assert(mysql.mysql()) local conn = assert(env:connect("database_name", "username", "password", "host", port)) -- 写入数据 local query = [[ INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?) ]] local stmt = assert(conn:prepare(query)) assert(stmt:execute("value1", "value2", "value3")) -- 关闭连接 stmt:close() conn:close() env:close() ``` 其中,`database_name` 是您要连接的数据库名称,`username` 和 `password` 分别是您的 MySQL 用户名和密码,`host` 是 MySQL 主机名或 IP 地址,`port` 是 MySQL 端口号,通常为 3306。 在 `query` 变量中,您可以编写要执行的 SQL 查询语句。在这里,我们使用了参数化查询来避免 SQL 注入攻击。`stmt:execute()` 方法用于执行 SQL 查询,并将要写入的数据作为参数传递给查询语句。 最后,您需要关闭连接,以释放资源。 注意:在实际应用中,您应该对写入的数据进行验证和过滤,以确保数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高晓伟_Steven

相逢即是有缘,动力源于金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值