mysql-proxy读写分离
mysql的读写分离的基本原理:
让master(主数据库)来响应事务性操作,让slave(从数据库)来响应select非事务性操作,然后再采用主从复制来把master上的事务性操作同步到slave数据库中。
一:mysql主从数据库的配置
要求:配置主从复制
server1 主 172.25.53.1
server3 调度机172.25.53.3
二:安装配置mysql-proxy
tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local
cd /usr/local/
ln -s mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy
mkdir /usr/local/mysql-proxy/conf
mkdir /usr/local/mysql-proxy/log
vim mysql-proxy/conf/mysql-proxy.conf--编译配置文件
更改lua脚本
使其快速进入读写分离状态
vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
chmod 660 mysql-proxy/conf/mysql-proxy.conf
开启proxy控制
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf
查看日志状态:
cat mysql-proxy/log/mysql-proxy.log
根据日志可以查看已经控制到mysql
过滤端口:
netstat -anltp
在master(server1)端给mysql用户权限:
grant all on test.* to [email protected]'%' identified by 'mysql';
下来我们开始检测:
在mysql安装lsof:
yum install -y lsof
重新开一台设备:
如上每登陆一次,使用lsof观察3306 端口,连接一次
当连接数大于2(lua脚本中设置的时);即启动了读写分离机制:
我们可以登陆admin proxy管理用户查看:
然后写入数据最后在两端查看不同即可。