mysql-proxy读写分离

mysql的读写分离的基本原理:

           让master(主数据库)来响应事务性操作,让slave(从数据库)来响应select非事务性操作,然后再采用主从复制来把master上的事务性操作同步到slave数据库中。

mysql-proxy读写分离


一:mysql主从数据库的配置
要求:配置主从复制

server1 主 172.25.53.1

server2 从 172.25.53.2

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--编译配置文件

mysql-proxy读写分离

更改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-proxy读写分离

根据日志可以查看已经控制到mysql

过滤端口:

netstat -anltp

mysql-proxy读写分离

在master(server1)端给mysql用户权限:

grant all on test.* to [email protected]'%' identified by 'mysql';

下来我们开始检测:
在mysql安装lsof:

yum install -y lsof

重新开一台设备:

mysql-proxy读写分离

如上每登陆一次,使用lsof观察3306 端口,连接一次

mysql-proxy读写分离

当连接数大于2(lua脚本中设置的时);即启动了读写分离机制:
我们可以登陆admin proxy管理用户查看:

mysql-proxy读写分离

然后写入数据最后在两端查看不同即可