nginx lua连接mysql_nginx-lua-mysql 使用简介_凡仕咖啡的博客-程序员秘密

技术标签: nginx lua连接mysql  

需要安装

Nginx

安装Nginx的echo模块

安装Nginx的lua 模块

安装Mysql

ps: echo模块,可以让我们像在PHP使用echo一样,打印出参数。

但是要加 default_type "text/html”;不然会出现请求页面出现下载的情况。

知识点:

Nginx操作命令,-s [reload|stop]

安装完lua以后,需要安装luajit;

使用luajit 的luarocks类似于PHP的composer,

安装mysql

执行命令:

安装lua 的mysql扩展前,一定要安装mysql.

$ luarockt install luasql-mysql

例子:

1. 首先修改nginx.conf

location /luatest {

default_type "text/html”;

content_by_lua_file /Users/Keil/study/lua/test.lua;

}

当页面匹配到 luatest,就会执行test.lua脚本。配置好default_type "text/html”; ,不然服务器会把test.lua文件下载下来。

ps:content_by_lua_file 命令:告诉服务器加载和执行lua文件。

test.lua中的代码:

local luasql =require("luasql.mysql")

--创建环境对象

env = luasql.mysql()

--

----连接数据库

conn = env:connect("wechats","root","","127.0.0.1")

--

----设置数据库的编码格式

conn:execute"SET NAMES UTF8"

----执行数据库操作

cur = conn:execute("select * from status")

row = cur:fetch({},"a")

while row do

var = string.format("%d %s\n", row.id, row.name)

ngx.say(var)

row = cur:fetch(row,"a")

end

conn:close() --关闭数据库连接

env:close()

2.nginx -s reload

对比:

使用 openresty也可以做到这个,而且更简单,openresty是一个集成的扩展集合,里面有nginx,也有lua,而且给用户配置好了,lua的redis,mysql扩展。适合新的服务器中使用;如果已有服务器,又不影响业务,可以手动安装lua扩展,不影响业务的使用。

lua扩展的资料

这兄弟写的很详细。按照上面走一遍就可以了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42499444/article/details/113191080

智能推荐

CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录_天剑含光的博客-程序员秘密_springboot整合cas

CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录1.1 什么是单点登录1.2 什么是CAS1.3 CAS服务端部署1.template下载1.4 客户端搭建1.1 什么是单点登录单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。我们目前的系...

《Flutter 控件大全》第六十个:ListWheelScrollView_老孟Flutter的博客-程序员秘密

如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。Flutter地址:http://laomengit.com 里面包含160多个组件的详细用法。在展示大量数据的时候我们第一会想到使用ListView,如果你觉得ListView比较单一、...

母亲节祝福短信母亲节信息母亲节祝福语大全 - 健康程序员,至尚生活!_weixin_33924220的博客-程序员秘密

 妈:感谢您让咱们一家人吃的丰盛、穿的体面、乐的开怀,让我代表一家人向您说:母亲节快乐! 妈妈,感谢您!在我跌跌撞撞的时候,是您一直在支持着我。今天是您的节日,衷心祝您节日快乐! 妈妈,今天是一个您也许不会记得而我永远不会忘记的日子!妈妈:祝您母亲节快乐! 妈妈我感谢你赐给了我生命,是您教会了我做人的道理,无论将来怎么样,我永远爱您!在这属于您的节日里,祝您节日快乐,永远快乐! 你的爱,我...

web开发必须知道--servlet、连接池、线程池的概念原理和使用_chujingli4480的博客-程序员秘密

servlet定义 全称JavaServlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为...

梦幻诛仙11职业linux架设手游,一款【梦幻诛仙11职业】手游端私服架设+JAVA后台+架设视频教程..._weixin_39860349的博客-程序员秘密

一款【梦幻诛仙11职业】手游端私服架设+JAVA后台+架设视频教程安装说明:最低配置2H4G安装CentOS 6.8体系封闭防火墙chkconfig iptables offservice iptables stop114 56 54安装浮图yum install -y wget && wget -O install.sh http://download.bt.cn/install...

深入浅出Win32多线程程序设计-【1】基本概念_lzhdim的博客-程序员秘密

 
  引言

  从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。

  理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win3...

随便推点

平面坐标点排序(一)_top啦它的博客-程序员秘密_坐标点排序

题目描述:输入n(0<n<100)和平面上n个点的坐标(均为整数),按点到原点的距离从小到大排序输出各点坐标,要求分别编写函数实现平面点坐标的录入InputData()、排序Sort()和输出OutputData()。Example Input31 23 41 1Example Output(1,1) (1,2) (3,4)在这里插入代码片#include&lt...

关于<mvc:default-servlet-handler/>报错问题的解决_iteye_10680的博客-程序员秘密

在spring mvc中引用&amp;lt;mvc:default-servlet-handler/&amp;gt;后启动程序异常如下: ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failedorg.springframework.beans.factory.BeanCreati...

CppSQLite - C++ Wrapper for SQLite_aperfels的博客-程序员秘密

原文地址:http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite/IntroductionThis article describes CppSQLite, a very thin C++ wrapper around the public domain SQLite datab

OAuth2实现单点登录SSO完整教程,其实不难!_程序员的成长之路的博客-程序员秘密

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 13 分钟。来自:cnblogs.com/cjsblog/p/10548022.html前言技术这东西吧,看别人写的好...

MEGA-X 3D打印机教程: 04_建模、切片、打印_Mi_Story的博客-程序员秘密

时间:2021年3月9日22:10:38创作者:Microl创作类型:原创

URLSpan 字体颜色修改_沈纵情的博客-程序员秘密

SpannableString ss = new SpannableString( getString(R.string.tv_inkanet_protocol)); ss.setSpan(new URLSpan("inkanet.pateo.com.cn"), 0, getString(R.string.tv_inkanet_protocol).length(), S