我一直在使用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.
答案 0 :(得分:1)
如果您在docker容器内运行 - 请勿连接到127.0.0.1
。
取决于你如何运行MySQL我们可能需要不同的解决方案。 我想你也将MySQL运行到容器中。
以这种方式为两个容器配置Docker网络,以便通过某个名称显示MySQL容器。
通常我会为此创建命名用户定义的网络。