local skynet = require "skynet" require "skynet.manager" local mysql = require "skynet.db.mysql" local db local idx = ... local command = {} function command.open(conf) local function on_connect(db) local servId = skynet.getenv("servId") db:query("set names utf8mb4"); db:query(string.format("use server_%s", servId)) end local servId = skynet.getenv("servId") db=mysql.connect({ host=conf.host, port=conf.port, database= "mysql", user=conf.user, password=conf.pwd, max_packet_size = 5 * 1024 * 1024, on_connect = on_connect }) if not db then print("failed to connect") end end skynet.start(function() skynet.dispatch("lua", function(session, address, cmd, ...) if cmd == "open" then local f = command[string.lower(cmd)] skynet.ret(skynet.pack(f(...))) elseif string.lower(cmd) == "quote_sql_str" then skynet.ret(skynet.pack(db[string.lower(cmd)](...))) else skynet.ret(skynet.pack(db[string.lower(cmd)](db, ...))) end end) skynet.info_func(function() return skynet.stat("mqlen") end) skynet.register(".mysql" .. idx) end)