目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

MHA-Atlas实现读写分离

安装

 1[root@db3 software]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
 2[root@db3 software]# cp /usr/local/mysql-proxy/conf/test.cnf /usr/local/mysql-proxy/conf/test.cnf.bak
 3[root@db3 software]# vim /usr/local/mysql-proxy/conf/test.cnf
 4[mysql-proxy]
 5admin-username = user
 6admin-password = pwd
 7proxy-backend-addresses = 192.168.31.190:3306
 8proxy-read-only-backend-addresses = 192.168.31.180:3306,192.168.31.181:3306
 9pwds = user1:+jKsgB3YAG8=, user2:GS+tr4TPgqc=
10daemon = true
11keepalive = true
12event-threads = 8
13log-level = message
14log-path = /usr/local/mysql-proxy/log
15sql-log = ON
16proxy-address = 0.0.0.0:33060
17admin-address = 0.0.0.0:2345
18charset=utf8
19
20# 启动Atlas
21[root@db3 software]# /usr/local/mysql-proxy/bin/mysql-proxyd test start
22OK: MySQL-Proxy of test is started
23
24# 查看端口
25[root@db3 software]# ps -ef | grep proxy
26[root@db3 software]# netstat -tnlp | grep proxy
27tcp        0      0 0.0.0.0:2345            0.0.0.0:*               LISTEN      3784/mysql-proxy
28tcp        0      0 0.0.0.0:33060           0.0.0.0:*               LISTEN      3784/mysql-proxy
29
30
31

生产用户要求

开发人员申请一个应用用户 app(select update insert) 密码 123456,要通过 192.168.31.% 网段登录

 1# 1.在主库中,创建用户
 2grant select,update,insert on *.* to app@'192.168.31.%' identified by '123456';
 3
 4# 2.在Atlas中添加用户
 5[root@db3 ~]# /usr/local/mysql-proxy/bin/encrypt 123456
 6/iZxz+0GRoA=
 7[root@db3 ~]# vim /usr/local/mysql-proxy/conf/test.cnf
 8pwds = app:/iZxz+0GRoA=
 9
10# 3.重启服务
11[root@db3 ~]# /usr/local/mysql-proxy/bin/mysql-proxyd test restart
12OK: MySQL-Proxy of test is stopped
13OK: MySQL-Proxy of test is started
14
15# 4.连接测试
16[root@db3 ~]# mysql -uapp -p123456 -h 192.168.31.182 -P 33060
17
18db3 [(none)]>select @@server_id;
19+-------------+
20| @@server_id |
21+-------------+
22|          52 |
23+-------------+
241 row in set (0.00 sec)
25
26db3 [(none)]>select @@server_id;
27+-------------+
28| @@server_id |
29+-------------+
30|          51 |
31+-------------+
32
33
34

Atlas 基本管理

在线修改 Atlas,不用修改配置文件重启

 1# 连接管理接口
 2[root@db3 ~]# mysql -uuser -ppwd -h127.0.0.1 -P2345
 3
 4# 查看所有管理命令
 5
 6db3 [(none)]>select *  from help;
 7+----------------------------+---------------------------------------------------------+
 8| command                    | description                                             |
 9+----------------------------+---------------------------------------------------------+
10| SELECT * FROM help         | shows this help                                         |
11| SELECT * FROM backends     | lists the backends and their state                      |
12| SET OFFLINE $backend_id    | offline backend server, $backend_id is backend_ndx's id |
13| SET ONLINE $backend_id     | online backend server, ...                              |
14| ADD MASTER $backend        | example: "add master 127.0.0.1:3306", ...               |
15| ADD SLAVE $backend         | example: "add slave 127.0.0.1:3306", ...                |
16| REMOVE BACKEND $backend_id | example: "remove backend 1", ...                        |
17| SELECT * FROM clients      | lists the clients                                       |
18| ADD CLIENT $client         | example: "add client 192.168.1.2", ...                  |
19| REMOVE CLIENT $client      | example: "remove client 192.168.1.2", ...               |
20| SELECT * FROM pwds         | lists the pwds                                          |
21| ADD PWD $pwd               | example: "add pwd user:raw_password", ...               |
22| ADD ENPWD $pwd             | example: "add enpwd user:encrypted_password", ...       |
23| REMOVE PWD $pwd            | example: "remove pwd user", ...                         |
24| SAVE CONFIG                | save the backends to config file                        |
25| SELECT VERSION             | display the version of Atlas                            |
26+----------------------------+---------------------------------------------------------+
2716 rows in set (0.00 sec)
28
29# 查看后端所有节点的情况
30db3 [(none)]>select * from backends;
31+-------------+---------------------+-------+------+
32| backend_ndx | address             | state | type |
33+-------------+---------------------+-------+------+
34|           1 | 192.168.31.190:3306 | up    | rw   |
35|           2 | 192.168.31.180:3306 | up    | ro   |
36|           3 | 192.168.31.181:3306 | up    | ro   |
37+-------------+---------------------+-------+------+
383 rows in set (0.00 sec)
39
40# 下线3号节点
41db3 [(none)]>set offline 3;
42
43# 动态删除节点
44db3 [(none)]>remove backend 3;
45
46# 动态添加节点
47db3 [(none)]>add slave 192.168.31.181:3306
48
49# 保存配置到配置文件
50db3 [(none)]>save config;
51

作者:Soulboy