MySQL配置proxy读写分离负载均衡

本文详细介绍了如何在已配置的Master/Slave MySQL环境中,通过安装并配置MySQL Proxy来实现读写分离和负载均衡。首先,通过直接从官网下载二进制包并配置rw-splitting.lua文件来启动Proxy服务;接着,在Master上创建一个专门用于与Proxy交互的账户;然后启动Proxy服务并进行测试,验证其是否能够正常工作。整个过程旨在提高数据库系统的性能和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前文讲了配置master/slave模式的mysql,现在在此基础上配置proxy,使得master和slave读写分离和负载均衡

环境再次介绍

192.168.153.129  master

192.168.153.130  slave

192.168.153.128  proxy


一、安装mysql-proxy

我是直接从官网上下载的二进制包,免去了make build的过程,这个过程很痛苦,相信我。

下载后解压,并拷贝到我们的工作目录/usr/local/mysql-proxy下


二、配置proxy

在/usr/local/mysql-proxy/share/doc/mysql-proxy下找到rw-splitting.lua文件,拷贝到proxy的根目录下,方便操作

cp /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua /usr/local/mysql-proxy/

同时在mysql-proxy目录下创建proxy的配置文件,文件名暂且叫mysql-proxy.cnf

在里面添加如下内容

[mysql-proxy]
proxy-lua-script=/usr/local/mysql-proxy/rw-splitting.lua
proxy-backend-addresses=192.168.153.129:3306
proxy-read-only-backend-addresses=192.168.153.130:3306
好了,配置完毕


三、添加proxy账户

由于之前已经做master/slave的数据同步,所以我们只要在master上创建一个proxy账户就可以了

grant all on *.* to 'proxy'@'192.168.153.128' identified by 'proxy';

这时可以测试一下看看slave上有没有这个账户,结果应该是有的,否则就不正确了


四、启动proxy

在192.168.153.128这台proxy机器上启动proxy服务

mysql-proxy --defaults-file=/usr/local/mysql-proxy/mysql-proxy.cnf

当看到2015-01-16 16:39:36: (critical) plugin proxy 0.8.5 started类似的提示时,说明启动成功了


五、测试

先造点测试数据,我的思路是这样,利用root账户在slave上的test库中创建一个表,随便插入写数据

这种情况,master是不会有这个表和数据的

利用这个,我们可以多打开几个proxy客户端,去查这个表的数据

我们的proxy的IP和PORT为192.168.153.128:4040

mysql -uproxy -pproxy -h192.168.153.128 -P4040

在每个客户端里都执行select语句,知道发现结果不一致,说明测试成功


以上,就是今天的成果了,哈哈,虽然只是极简易的配置操作,但算是体验了一把,还是很有收获的:)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值