mysl的读写分离

环境:

server1172.25.60.1master
server2172.25.60.2slave
server3172.25.60.3proxy

1.server1/2配置主从:
这里我采用基于gtid的异步复制。配置方法上一篇已经详细说过了,这里就不再累赘了,上一篇连接:(https://blog.youkuaiyun.com/weixin_42195382/article/details/97627722)

2.server3配置proxy,控制读写分离:
获取proxy包:mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz(官网上可以下到)

tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz	//解压
mv mysql-proxy-0.8.5-linux-el6-x86-64bit/* /usr/local/mysql-proxy/	//重命名

(1)编辑主配置文件

cd /usr/local/mysql-proxy/
mkdir conf			//编辑一个放配置文件的目录
cd conf/
vim mysql-proxy.conf	//编辑一个配置文件--开启时指定此文件
##配置文件内容如下:
[mysql-proxy]
proxy-address=0.0.0.0:3306		//本机3306端口
proxy-backend-addresses=172.25.60.1:3306		//master端
proxy-read-only-backend-addresses=172.25.60.2:3306	//slave端
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
pid-file=/usr/local/mysql-proxy/log/mysql-proxy.pid		//指定pid存放位置,log目录需要自己建立
log-file=/usr/local/mysql-proxy/log/mysql-proxy.log		//指定日志存放位置
plugins=proxy		//插件
log-level=debug
keepalive=true		//高可用
daemon=true

注:查看配置文件参考参数:

/usr/local/mysql-proxy/bin/mysql-proxy --help
/usr/local/mysql-proxy/bin/mysql-proxy --help-proxy

(2)修改读写文件参数

cd /usr/local/mysql-proxy/share/doc/mysql-proxy/
vim rw-splitting.lua	//编辑读写文件,修改连接参数

if not proxy.global.config.rwsplit then
     proxy.global.config.rwsplit = {
           min_idle_connections = 2,		//最小连接数为2时启用读写分离
           max_idle_connections = 4,		//最大可以连接4个
           is_debug = false
     }
end

(3)开启proxy:

##开启proxy:直接开启服务会报错,编写的文件权限不对
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf	
##根据报错提示,修改权限再次开启就ok
chmod 660 /usr/local/mysql-proxy/conf/mysql-proxy.conf							

3.测试:
(1)开启proxy后在/usr/local/mysql-proxy/log/自动生成两个文件:

mysql-proxy.pid
mysql-proxy.log

(2)查看日志:
cat mysql-proxy.log 可以看到连接到了server1/2

(3)安装lsof,使用lsof查看proxy的连接情况

yum search lsof -y
lsof -i:3306		//查看proxy服务情况

在这里插入图片描述
用物理及连接测试,当连接超过2时,启用了读写分离。

验证读写分离:
a.写: 在物理机上连接写入,只有写入serevr1,所有的后端才能同步到数据
b.读: 关闭slave复制,在server1上加入数据,在物理机端读取数据,看不到刚才写入的数据,则证明读的是server2。因此,证明了读写分离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值