Hi,
我以前一直单独使用ngx_lua模块,今天编译安装了openresy, 然后运行下面配置:
lua_package_path "/usr/local/openresty/lualib/?.lua;;";
server {
listen 8888;
server_name localhost;
location /test {
content_by_lua '
local mysql = require "resty.mysql"
local db = mysql:new()
db:set_timeout(1000) -- 1 sec
local ok, err, errno, sqlstate = db:connect{
host = "127.0.0.1",
port = 3306,
database = "ngx_test",
user = "ngx_test",
password = "ngx_test",
max_packet_size = 1024 * 1024 }
if not ok then
ngx.say("failed to connect: ", err, ": ", errno, " ", sqlstate)
return
end
ngx.say("connected to mysql.")
';
}
}
问题很奇怪啊,当reload进程之后的第一个请求,会提示mysql.lua:7: module 'bit' not found, 再次请求时之前的错误不报了,但是提示mysql:new使用错误attempt to call method 'new' (a nil value),数据库连接操作都还没开始就发生错误了,所以数据库我也还没有配置.
mysql这段我完全是copy resty-mysql的文档.