读写分离是基于主从复制上面布置的,需要使用Atlas软件,代理服务器上只需要安装mariadb客服端
三台服务器:一台做主,一台做从,一台安装Atlas软件
主从复制部署的在我的主页有,需要的可以去看看,链接:Mysql数据库主从复制_wang1955的博客-CSDN博客
1)安装配置Atals软件,rz上传
# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
路径:cd /usr/local/mysql-proxy/bin
2)安装完成后bin目录下会自动生成四个文件
Encrypt:用来生成mysql密码加密的
Mysql-proxy:mysql自己的读写分离代理
Mysql-proxyd:360的,“d”是服务的启动、重启、停止,执行conf目录下放的配置文件
3)在cd /usr/local/mysql-proxy/bin目录下加密密码
# ./encrypt abcd1234
4)打开Atlas的配置文件进行修改
# vim /usr/local/mysql-proxy/conf/test.cnf
在pwds处,将上面加密的密码复制进入
5)配置完后才能后记得启动Atlas软件
# /usr/local/mysql-proxy/bin/mysql-proxyd test start
6)到主从设备中进入mysql数据库授权Atlas软件
grant all on *.* to test@'192.168.10.10' identified by 'abcd1234';
7)进入到Atles服务器中,使用test.cnf中的管理账号与密码登录2345管理接口IP和端口,管理账号登入后是无法使用平行界面的命令,可以使用select * from help;寻求帮助
# mysql -h127.0.0.1 -P2345 -uuser -ppwd 管理界面
8)在数据库中查看Atles管理的数据库
MySQL [(none)]> SELECT * FROM backends;
9)使用创建的test账户登录 平行界面
# mysql -h127.0.0.1 -P1234 -utest -pabcd1234
可以发现Atles代理已经读取到主从数据库中的数据,但是还不知道读取的主数据库还是从数据库的数据?
验证
10)在主数据库中添加了一个ID 7 用户zhangsan
查询从数据库中是可以查询到这个用户
Atles服务器中也是可以查询到这个用户的
11)现在去从数据库中创建一个用户8 张三,表中是有这个用户
主数据库中是没有这个用户的
再查看Atles代理服务器,表中是有用户8 张三
通过以上实验验证出:Atles软件是读取的从服务器中的数据,不会读取主数据库中的。