这篇开始玩玩atlas来实现数据库的读写分离
atlas是什么?
atlas说白了就是一个数据库代理,起到一个代理作用,实现读写分离
中间的mysql-proxy指的就是atlas
1、atlas配置
1.1下载
wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm1.2安装
rpm -ivh Atlas-2.2.1.el6.x86_64.rpm安装成功之后
它会默认在”/usr/local/mysql-proxy”下给你生成4个文件夹,以及需要配置的文件,如下:
bin目录下放的都是可执行文件1.3加密
1. “encrypt”是用来生成MySQL密码加密的,在配置的时候会用到
2. “mysql-proxy”是MySQL自己的读写分离代理
3. “mysql-proxyd”是360弄出来的,后面有个“d”,服务的启动、重启、停止。都是用他来执行的
conf目录下放的是配置文件
1. “test.cnf”只有一个文件,用来配置代理的,可以使用vim来编辑
lib目录下放的是一些包,以及Atlas的依赖
log目录下放的是日志,如报错等错误信息的记录
进入bin目录执行加密
./encrypt 123
1.4配置test.cnf
开启日志
这是设置工作接口与管理接口的,如果ip设置的”0.0.0.0”就是说任意IP都可以访问这个接口,当然也可以指定IP和端口
1.5启动atlas
进入master主库检查主从同步是否有问题
ok这样是没问题的;
进入bin目录下,执行以下语句启动
./mysql-proxyd test start
1.6进入atlas管理接口
我们连接管理端口来查看atlas中主从状态是否已经为up
mysql -uuser -ppwd -h127.0.0.1 -P2345
select * from backends;
可以看到,server-id为1,state为up,则type为rw
而从库呢,server-id为2,state为up,则type为ro
这时候主从同步及读写分离都已经完成!
2、测试
2.1Navicat连接atlas
我们从windows下的Navicat来连接atlas这台机子,连接的是工作接口端口为1234
连接完之后呢我们可以看到test数据库下有user表
2.2atlas这台机子开启日志
进入atlas的日志目录log
执行以下:tail -f sql_test.log
2.3执行测试语句
在Navicat连接的atlas下我们来写sql
当执行select * from user时,发现走的机子是129从库
当执行insert语句是发现走的130主库
如果需要写走主库,可以进行强行查询如下:
/*master*/ SELECT * FROM user
ok至此我们已经完成了读写分离
如有不对地方望指正