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 |
+------+------+--------+