Atlas是360公司弄出来的一套基于MySQL-Proxy基础之上的代理。已经有几年没有更新了,目前没有看到适用于centos7的版本
但我安装了使用centos6的安装包也成功了
Atlas官方链接: https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md
Atlas下载链接: https://github.com/Qihoo360/Atlas/releases
192.***.***.**1 Atlas安装位置
192.***.***.**9 sysbench安装位置(非必须安装)
192.***.***.**0 主库安装位置
192.***.***.**2 从库安装位置
数据库安装这里就不介绍,百度上有很多,读写分离首先需要的是一个主从复制环境
要搭建主从复制需要一个用户
create user "repl_test" identified by "123";
GRANT REPLICATION SLAVE ON *.* TO 'repl_test'@'%'
flush privileges;
这样一来,用于主从复制的用户就已经创建完成了
接下来看一看需要的配置,首先看一下主库的配置
log_bin = mysql-bin 开启二进制日志
binlog_format=mixed binlog日志模式
server-id = 2 服务器id(要唯一)
expire_logs_days = 7 保留几天的二进制日志(可以配置也可以不配置)
这是从库的配置
如果从库不需要当另一台数据库的master的话直接配置中继日志就可以,不需要配置开启二进制日志
如果两个数据库都是新安装的就不用考虑其他情况,如果从库是后增加的,则需要将主库的数据先拷贝到从库上,如果数据量比较大的话建议使用xtrabackup工具。这里不讲这个工具的使用了,之后再补这个工具的使用
这时候,我们的主库和从库就各自配置好了,接下来将主库关联起来
首先我们登陆主库
mysql -uroot -p
然后执行如下命令
得到的结果即为当前的二进制日志的最新日志文件和最新的pos点
然后我们登录slave数据库
执行如下操作:
- CHANGE MASTER TO MASTER_HOST='192.***.***.**0', MASTER_USER='repl_test', MASTER_PASSWORD='123',MASTER_LOG_FILE='mysql-bin.000115', MASTER_LOG_POS=154;
这里是配置主库的host,主从复制用户,用户的密码,开始执行复制的文件,开始执行复制的位置
此时再执行start slave就已经开启了主从复制了
关闭复制的话就直接stop slave就可以了
执行如下命令可以查看复制是否成功
上面两个黄色荧光标记都为yes的话即代表成功
如果是其他状态,下面的error会给出具体的错误,genj根据错误改正
如上图所示,我们的主从环境搭建完成了。
接下来需要配置Atlas
首先连接到192.***.***.**1这台服务器
首先去上面给的链接上下载对应版本的altas,由于altas已经很久没有更新了,目前没有对应centos7的版本,但是我下载了对应centos6的版本应能搭建成功
安装官网有详细的步骤且是中文,这里面简单的介绍一下
rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
这时候可以查看/usr/local/mysql-proxy这个目录
进入到/usr/local/mysql-proxy/bin目录下
我们可以看到encrypt这个
这是用来加密密码的
首先,我们需要在主从库创建个用户,用来altas监听;
create user "no_repl" identified by "123";
GRANT all ON *.* TO 'no_repl'@'%'
然后我们继续回到192.***.***.**1这台服务器,在/usr/local/mysql-proxy/bin目录下。执行命令
这时候下面所生成的就是对密码加密之后的结果
然后我们进入到/usr/local/mysql-proxy/conf
对test.cnf进行编辑,这个是配置文件
vim test.cnf
配置文件里都有详细的配置说明,这是官网上的配置
这里就不过多做介绍了,应该很容易看明白
然后我们进入到/usr/local/mysql-proxy/bin这个目录下执行如下命令
./mysql-proxyd test start
altas便已经开启了
可以看一下这个状态确定是否开启
如图所示,可知atlas已经开启
我们也可以登陆到atlas的数据库上:
mysql -h192.***.***.**1 -P 2345 -uuser -p
通过如图所示可以查看到相应的管理命令,这个可以自己多做些研究
接下来我们验证一下读写分离是否实现
首先我们在主库里面创建一张表,插入几条数据
然后我们查看一下从库
可以看到此时两个表的信息同步
这时候我们停掉主从复制
stop slave;
然后向主库中插入一条数据,这是可以看到主库中的数据多了一条
我们再查看一下此时从库中的数据
从库数据依旧没有改变,现在我们通过atlas来访问
可以看到此时atlas读到的数据和从库是一样的,即证明了读写分离是成功的
至此,读写分离搭建完成,可以用sysbench工具测试读写分离性能