基于mysql-proxy实现读写分离的启动脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于mysql-proxy实现读写分离的启动脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2295字,纯文字阅读大概需要4分钟。
内容图文
![基于mysql-proxy实现读写分离的启动脚本](/upload/InfoBanner/zyjiaocheng/467/75cbaf9ef6464cc6ae6e83f9671b913c.jpg)
LOGLEVEL="info"
LOGFILE="/var/log/mysql-proxy.log"
MASTERADDR="192.168.1.51:3306"
SLAVEADDR="192.168.1.53:3306"
PROXYLUA="/usr/local/mysql-proxy/share/doc/mysql-proxy/rm-splitting.lua"
ADMINUSER="admin"
PASSWD="admin"
ADMINLUA="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"
PROXYADDR=‘192.168.1.54‘
PROXYPORT=4040
ADMINPORT=4041
admin.lua脚本
function set_error(errmsg)
proxy.response = {
type = proxy.MYSQLD_PACKET_ERR,
errmsg = errmsg or "error"
}
end
function read_query(packet)
if packet:byte() ~= proxy.COM_QUERY then
set_error("[admin] we only handle text-based queries (COM_QUERY)")
return proxy.PROXY_SEND_RESULT
end
local query = packet:sub(2)
local rows = { }
local fields = { }
if query:lower() == "select * from backends" then
fields = {
{ name = "backend_ndx",
type = proxy.MYSQL_TYPE_LONG },
{ name = "address",
type = proxy.MYSQL_TYPE_STRING },
{ name = "state",
type = proxy.MYSQL_TYPE_STRING },
{ name = "type",
type = proxy.MYSQL_TYPE_STRING },
{ name = "uuid",
type = proxy.MYSQL_TYPE_STRING },
{ name = "connected_clients",
type = proxy.MYSQL_TYPE_LONG },
}
for i = 1, #proxy.global.backends do
local states = {
"unknown",
"up",
"down"
}
local types = {
"unknown",
"rw",
"ro"
}
local b = proxy.global.backends[i]
rows[#rows + 1] = {
i,
b.dst.name, -- configured backend address
states[b.state + 1], -- the C-id is pushed down starting at 0
types[b.type + 1], -- the C-id is pushed down starting at 0
b.uuid, -- the MySQL Server‘s UUID if it is managed
b.connected_clients -- currently connected clients
}
end
elseif query:lower() == "select * from help" then
fields = {
{ name = "command",
type = proxy.MYSQL_TYPE_STRING },
{ name = "description",
type = proxy.MYSQL_TYPE_STRING },
}
rows[#rows + 1] = { "SELECT * FROM help", "shows this help" }
rows[#rows + 1] = { "SELECT * FROM backends", "lists the backends and their state" }
else
set_error("use ‘SELECT * FROM help‘ to see the supported commands")
return proxy.PROXY_SEND_RESULT
end
proxy.response = {
type = proxy.MYSQLD_PACKET_OK,
resultset = {
fields = fields,
rows = rows
}
}
return proxy.PROXY_SEND_RESULT
end
基于mysql-proxy实现读写分离的启动脚本
标签:基于mysql-proxy实现读写分离
本文系统来源:http://10900996.blog.51cto.com/10890996/1795254
内容总结
以上是互联网集市为您收集整理的基于mysql-proxy实现读写分离的启动脚本全部内容,希望文章能够帮你解决基于mysql-proxy实现读写分离的启动脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。