【发布时间】:2026-02-24 11:25:01
【问题描述】:
我一直在使用 openresty lua 并尝试连接到在我的本地主机上运行的 mysql 数据库。但是,我无法连接到它,也无法调试它,因为 lua mysql 客户端没有提供有关错误的任何信息。
--
-- Created by IntelliJ IDEA.
-- User: AGK
-- Date: 6/5/18
-- Time: 2:14 PM
-- To change this template use File | Settings | File Templates.
--
local mysql = require "resty.mysql"
local _M={}
function _M.connect()
local db, err = mysql:new()
if not db then
ngx.say("failed to instantiate mysql: ", err)
return
end
db:set_timeout(1000) -- 1 sec
-- or connect to a unix domain socket file listened
-- by a mysql server:
-- local ok, err, errcode, sqlstate =
-- db:connect{
-- path = "/path/to/mysql.sock",
-- database = "ngx_test",
-- user = "ngx_test",
-- password = "ngx_test" }
local ok, err, errcode, sqlstate = db:connect{
host = "127.0.0.1",
port = 3306,
database = "mydb",
user = "root",
password = "abcd1234",
charset = "utf8",
max_packet_size = 1024 * 1024,
ssl = true,
sslverify = true,
}
if not ok then
ngx.say("failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
ngx.say("connected to mysql.")
end
return _M
此输出连接失败:连接失败:连接被拒绝:nil nil
知道这个简单的程序可能有什么问题。注意:我在我的 Mac 上运行 mysql 5.7.x。
【问题讨论】:
-
你是否在同一个机器上运行 Openresty 和 MySQL 服务器?
-
@AlexanderAltshuler 是的,我在同一个盒子上运行它们。
-
你可以看到 MySQL 正在监听 3306 端口?
sudo netstat -tlpn请提供输出 -
@Alexander Altshuler 是的,我愿意。我什至使用 Java 代码连接到数据库。令人沮丧的部分是 lua 我的 sql lib 没有给我任何错误,它只是给出连接被拒绝和错误代码为零
-
你可以在容器中运行 Openresty 吗?