mysqld.lua 930 Bytes
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)
        db:query("set charset utf8mb4");
	end
	db=mysql.connect({
		host="127.0.0.1",
		port=3306,
		database="mysql",
		user="root",
		password="123456",
		max_packet_size = 1024 * 1024,
		on_connect = on_connect
	})
	if not db then
		print("failed to connect")
	end
	local servId = skynet.getenv("servId")
	db:query(string.format("use server_%s", servId))
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(...)))
		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)