一、读写分离意义
主从集群的问题,主对外工作,从不对外工作。主即要负责写操作,也要负责读操作,对于主从集群来说,只是保证了数据的安全备份。
HAC:High Availability Cluster,高可用集群
注意:
MySQL的主从复制,只会保证主机对外提供服务,而从机是不对外提供服务的,只是在后台为主机进行备份;读写分离后,主负责写和部分读,从负责读,实现高性能高可用的数据库集群。
二、读写分离演示需求
- MySQL master:128
- MySQL slave :129
- MySQL proxy :129
1.MySQL-Proxy安装(实际生产中不会使用MySQL-Proxy)
#下载 https://downloads.mysql.com/archives/proxy/
wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
#解压
tar -xf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /kkb
2.MySQL-Proxy配置
2.1 创建mysql-proxy.cnf文件
[mysql-proxy]
user=root
admin-username=root
admin-password=root
proxy-address=192.168.10.137:4040
proxy-backend-addresses=192.168.10.135:3306
proxy-read-only-backend-addresses=192.168.10.136:3306
proxy-lua-script=/root/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=/root/mysql-proxy/logs/mysql-proxy.log
log-level=debug
keepalive=true
daemon=true
2.2修改mysql-proxy.cnf文件的权限
chmod 660 mysql-proxy.cnf #可读写
2.3修改rw-splitting.lua脚本
2.4MySQL-Proxy启动与测试
#启动
./mysql-proxy --defaults-file=mysql-proxy.cnf #配置文件的地址
注意:
如果没有配置profile文件的环境变量,则需要去拥有mysql-proxy命令的目录通过./mysql-proxy进行启动。
在其他客户端,通过mysql命令去连接MySQL Proxy机器
#进入mysql-proxy代理进行操作数据库集群
mysql -uroot -proot -h192.168.10.137 -P4040
#注: 关闭防火墙