function _M.connect(self, config)
local db = setmetatable({ conn = mysql:new(), config = config }, mt)
local conn = db.conn
conn:set_timeout(config.timeout)
local ok, err, errno, sqlstate = conn:connect({
host = config.host,
port = config.port,
database = config.database,
user = config.user,
password = config.password,
max_packet_size = config.max_packet_size
})
if not ok then
log_error("failed to connect: ", err, ": ", errno, " ", sqlstate)
return
end
_M.query(db, "set names " .. config.charset)
return db
end