有这样的使用场景,需要对DB访问端隐藏后端真实的mysql服务器的IP和端口,向它提供一个代理的IP和端口。
mysql的代理服务有多种解决方案,包含原厂的和第三方的。这次主要介绍mysql原厂的代理方案。
mysql proxy,看这个名字就知道它可以做这个事情,不过mysql对该产品及命名不满意,甚至没有发布正式版就放弃了,官网归档版中最后的版本号是0.85alpha,也开源在github上,版本是0.8,其实应该是同一个版本的。
用mysql-proxy配置代理很简单,配置文件可以参考以下配置:
lua
[mysql-proxy]
admin-username=root
admin-password=root
admin-lua-script=C:/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-address=localpubIP:PORT
proxy-backend-addresses=realdbIP:realdbPORT
log-file=C:/mysql-proxy/log/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true
注意替换为本地安装路径,本机服务IP和端口,后端mysql服务器的IP和端口。
mysql proxy安装简单,就一个压缩包,下载后解压即可使用。
mysql自己都放弃mysql proxy,它推荐的产品方案是mysql router,用mysql router来做代理也很简单,配置文件可以参考如下配置:
lua
[logger]
level = INFO
[routing:primary]
bind_address = localpubIP
bind_port = PORT
destinations = realdbIP:realdbPORT
routing_strategy = first-available
注意替换为本机服务IP和端口,后端mysql服务器的IP和端口。
如果你只是想试一下mysql代理,mysql proxy应该就够用,如果要在正式环境部署使用,建议采用mysql router,毕竟这个是原厂持续支持的产品。性能、功能和兼容性也是优于前者的。