Openresty LUA Mysql 连接错误

我一直在使用Openresty Lua并尝试连接到运行在本地主机上的mysql db。然而,我无法连接到它,因为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("无法实例化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("连接失败: ", err, ": ", errcode, " ", sqlstate)
    return
end

ngx.say("已连接到mysql。")
end

return _M

这将输出连接失败:连接失败:连接被拒绝:nil nil

有任何想法这个简单的程序可能出错吗?注:我在我的Mac上运行mysql 5.7.x。

点赞
用户2060502
用户2060502

如果您在 Docker 容器中运行 - 不要连接到 127.0.0.1

根据您运行 MySQL 的方式,我们可能需要不同的解决方案。我假设您也在容器中运行 MySQL。

配置 Docker 网络,使两个容器之间的 MySQL 容器可以通过某个名称查看。

通常,我创建命名的用户定义网络来实现此目的。

2018-06-08 15:37:22