Atlas-读写分离:

当前读写分离架构图:
配置Atlas文件:
  • 配置文件内有默认的管理用户与密码,还有管理地址与端口,进入配置文件内查看
# 使用Altas的加密工具进行对 123456密码加密
[root@db-atlas ~]# encrypt 123456
# /iZxz+0GRoA=

[root@db-atlas ~]# egrep -v '^$|^#' /usr/local/mysql-proxy/conf/prod.cnf
[mysql-proxy]
admin-username = root
admin-password = 123456
proxy-backend-addresses = 172.18.1.76:3306       # 12行,配置主库 IP
proxy-read-only-backend-addresses = 172.18.1.78:3306      # 15行,配置当前环境内的从库的 IP
pwds = root:/iZxz+0GRoA=      # 18行,配置MySQL用户与密码,用逗号分隔,冒号写密码(加密后的密码)
daemon = true           # 是否守护运行
keepalive = true        # 自动监控worker进行运行状态
event-threads = 8       # 工作线程数
log-level = error      #30行,指定日志记录的级别
log-path = /usr/local/mysql-proxy/log        # 日志存放的路径
sql-log = ON         # 36行,开启SQL语句执行的日志
sql-log-slow = 10      # 39行,记录大于10毫秒的执行语句日志
proxy-address = 0.0.0.0:1234      # 45行,指定程序监听地址与端口
admin-address = 0.0.0.0:2345      # 48行,Atlas监听的管理接口IP和端口
charset = utf8      #54行,指定字符集
重启Atlas服务:
#配置文件的名字为prod.cnf,那就启动prod,如果配置文件改名为olda,那就执行olda start
[root@db-atlas ~]# mysql-proxyd prod restart
查看Altas后端数据库:
  • 如果是8.0版本的mysql客户端程序暂时不可使用。可以二进制解压一个5.7版本的mysql客户端工具

  • 管理端口默认:2345

#'root 与 123456 都是配置文件内管理用户指定的用户与密码
[root@db-atlas ~]# mysql -uroot -p -h172.18.1.100 -P2345 -e "select * from backends;"
Enter password: 
+-------------+------------------+-------+------+
| backend_ndx | address          | state | type |
+-------------+------------------+-------+------+
|           1 | 172.18.1.76:3306 | up    | rw   |
|           2 | 172.18.1.78:3306 | up    | ro   |
+-------------+------------------+-------+------+
测试读写分离:
  • 数据端口默认:1234
# 查看 temp表结构
[root@db-atlas ~]# mysql -uroot -p -h172.18.1.100 -P1234 -e "use course;desc temp;"
Enter password: 
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(64) | YES  |     | NULL    |       |
| gender | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
# 插入数据到 temp表
[root@db-mycat ~]# mysql -uroot -p -h172.18.1.100 -P1234 -e "use course; insert into temp values(1,'aa','1');"
Enter password: 
[root@db-mycat ~]# mysql -uroot -p -h172.18.1.100 -P1234 -e "use course; insert into temp values(2,'bb','2');"
Enter password:

# 停止 MySQL-主库,测试是否还可以插入数据到 temp表 ( 不可写是正常的 )
[root@db-mycat ~]# mysql -uroot -p -h172.18.1.100 -P1234 -e "use course; insert into temp values(3,'cc','3');"
Enter password: 
ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query

# 停止 MySQL-主库,测试是否还可读 temp表数据 ( 可读代表已经 读写分离 完毕 )
[root@db-mycat ~]# mysql -uroot -p -h172.18.1.100 -P1234 -e "use course; select * from temp;"
Enter password: 
+------+------+--------+
| id   | name | gender |
+------+------+--------+
|    1 | aa   |      1 |
|    2 | bb   |      2 |
+------+------+--------+