前言我们已经部署了MySQL高可用MHA架构,本文基于MHA使用Atlas构建mysql读写分离。

安装

我们额外选着一台服务器去做Atlas的安装配置
下载地址:https://github.com/Qihoo360/Atlas/releases

yum install -y Atlas*

配置

mv test.cnf test.cnf.bak
vi test.cnf

[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 192.168.186.100:3306
proxy-read-only-backend-addresses = 192.168.186.133:3306,192.168.186.135:3306
pwds = twf:JKEfAH2h9U0a8s/oWZlMvQ==,mha:JKEfAH2h9U0a8s/oWZlMvQ==
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060
admin-address = 0.0.0.0:2345
charset=utf8

这边pwds的值都是加密的,可以使用下面命令查看密码加密后的value

/usr/local/mysql-proxy/bin/encrypt  tang1611

启动

启动atlas
/usr/local/mysql-proxy/bin/mysql-proxyd test start

启动atlas可能会报错

#查找文件
find / -name libcrypto*
做软连接
ln -s /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.6

#查找文件
find / -name liblemon*
做软连接
ln -s /usr/local/lib/liblemon_parser.so /usr/lib64/liblemon_parser.so

最后启动成功,查看服务

ps -ef |grep proxy

测试

在另一台机器上执行

mysql -umha -p'tang1611'  -h 192.168.186.130 -P 33060
#测试读操作,正常读操作都只会执行在从节点
select @@server_id
#测试写操作
begin;select @@server_id;commit;


Atlas基本管理

连接管理接口

mysql -uuser -ppwd -h192.168.186.130 -P2345

打印帮助

select * from help;

查询后端所有节点

select * from backends;

动态添加删除节点

ADD SLAVE 192.168.186.136:3306;
REMOVE BACKEND 4;

保存配置文件

SAVE CONFIG;