最近用了纯OpenResty搭建了一个网站,后端数据库用的是MySQL。今天就来Mark一下。
话不多说,先来一个MySQL连接的简单封装:libs.mysql.lua,如下所示
首先,需要引入resty库中的mysql模块。其中db:connect(config)中的config,笔者将其放到shared Cache当中去了。抽出来了一个配置文件,如下所示:
resources.properties
在nginx.conf http模块下面新增
init.lua代码如下:
到现在为止,基础的东西已经搭建完成了。下面介绍一下使用
在这里需要注意的是,demo中的db:close()方法其实并不是,resty.mysql中的close()方法。这个方法在libs.mysql.lua文件中重写了,实际调用的是setkeepalive方法。
在这里还有一点需要注意的是,在执行业务的SQL之前,执行了"SET NAMES utf8"这个SQL。这个是解决乱码问题的,其实这个是可以避免掉,方法就是修改你的 MySQL 服务器端默认的连接字符集为utf8。(由于笔者机器多次修改MySQL字符集都尚未成功,故加此代码)参见lua-resty-mysql issues: https://github.com/openresty/lua-resty-mysql/issues/20