一、什么是读写分离?
- MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力。
- 使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql服务器上。
二、为什么要读写分离?
- 因为数据库的写操作相对读操作是比较耗时的,所以数据库的读写分离,解决的是数据库的写入,影响了查询的效率。
三、实验环境:
- rhel7.3 selinux and firewalld disabled
- server1:172.25.79.1(master)
- server2:172.25.79.2(slave)
- server3:172.25.79.3(mysql-proxy)
四、搭建步骤
[server1和server2]: 实现主从复制
- 首先在server1(主)和server2(从)上搭建主从复制架构
这里我只将搭建成功的结果图附上,具体操作不再赘述
测试:主从复制
- 在server1(主)上创建库,进入库,创建表,插入表信息
- server2(从)上可以看到表信息,则主从复制成功
- 在master上授权(授予全部权限,但是仅仅是实验环境所与不太在意安全)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'HUIyange+32';
Query OK, 0 rows affected, 1 warning (0.03 sec)
[server3]: 配置代理端
- 下载安装包并解压到指定目录
[root@server3 ~]# tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
[root@server3 ~]# mv mysql-proxy-0.8.5