mysql-proxy ~ 实现读写分离的小神器

Table of Contents

1. Mysql-proxy简介

2. 实验目的

3. 实验环境

4. 配置读写分离

4.1 安装mysql-proxy

4.2 配置node3作为代理端

4.3 物理机安装mariadb进行测试 


1. Mysql-proxy简介

  • mysql-proxy是官方提供的mysql中间件产品,可以实现负载平衡,读写分离,failover等操作。
  • MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。

2. 实验目的

搭建mysql主从复制,通过mysql-proxy将写请求转发给主库,读请求转发给从库,从而实现读写分离,负载均衡,减轻主库压力 

3. 实验环境

node1:读写

node2:只读

node3:代理【Mysql-proxy】

4. 配置读写分离

配置node1和node2主从复制,这里我们使用GTID主从复制。如果还没有配置可以参考文章:https://blog.csdn.net/m0_37868230/article/details/106135132

4.1 安装mysql-proxy

下载地址:https://downloads.mysql.com/archives/proxy/ 

4.2 配置node3作为代理端

  • 解压mysql-proxy

  • 创建conf目录,并编译配置文件
mkdir conf
cd conf/
vim mysql-proxy.conf

创建日志目录(根据配置文件中指定)

  • 修改读写分离脚本

  • 修改配置文件权限为0660,否则会报错,然后启动
chmod 0660 /usr/local/mysql-proxy/conf/mysql-proxy.conf

可以看到,报错信息提示配置文件中存在字符不识别

  • 修改配置文件,并重新启动 
vim /usr/local/mysql-proxy/conf/mysql-proxy.conf
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf

注意:空格也是字符,因此不要多余空格

启动成功~

4.3 物理机安装mariadb进行测试 

yum install -y mariadb-server.x86_64

  • node1上进行授权、刷新,并添加数据
grant insert,update,select on *.* to root@'%' identified by 'Du@961028';
flush privileges;

use dsd
mysql> create table usertable (
    -> username varchar(10) not null,
    -> password varchar(15) not null );
desc usertable;

  • 在物理机上访问
mysql -h 192.168.1.13 -uroot -pDu@961028

  • node3代理端安装lsof工具,查看3306端口进程
yum install -y lsof.x86_64

lsof -i:3306

当前只有一个请求,该请求指向node1

我们在上面修改它最大为2,超过2则会转发给另一台主机

  • 打开第二个连接,查看3306端口进程

  • 打开第三个连接,查看3306端口进程

可以看到,超过两个连接之后,就会启用读写分离

读写分离启用后,验证node1为读写库,node2为只读库

先关闭node2的主从复制,否则会直接通过主从复制备份数据,那么显示是相同的,这样会导致我们没办法清晰的看到读写分离的效果

  • 在物理机插入数据

  • 物理机访问(超过两个连接,此时请求是在node2上)

  •  node1访问

上述证明了,我们读是从node2上读取,而写是在node1上写入,也就是说读写分离已经成功~

  • 再次开启主从复制,可以看到,数据读取到node2

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值