一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。

mysql的读写分离_第1张图片

前提主从复制—->http://nginxs.blog.51cto.com/4676810/1197678


192.168.1.200 mysql-proxy-server

192.168.1.201 master 完成写操作

192.168.1.202 slave 完成读操作

192.168.1.20 client 客户端测试


配置 mysql-proxy-server

1,LUA 语言解析器

lua-5.0.2-1.el5.rf.i386.rpm

lua-devel-5.0.2-1.el5.rf.i386.rpm

2,安装

tar zxf mysql-proxy-0.8.0-linux-rhel5-x86-32bit.tar.gz -C /usr/local

cd /usr/local

mv mysql-proxy-0.8.0-linux-rhel5-x86-32bit mysql-proxy

3LUA 脚本

/usr/local/mysql-proxy/share/doc/mysql-proxy

Vim rw-splitting.lua

38 min_idle_connections = 1,

39 max_idle_connections = 1,


Master: 192.168.1.201

create database db;

use db;

create table test(id int(2));

insert test(id) values(100);

grant all on db.* to user1@"%" identified by "123";


Slave: 192.168.1.202

create database db;

use db;

create table test(id int(2));

insert test(id) values(200);

grant all on db.* to user1@"%" identified by "123";


启动mysql-proxy-server

/usr/local/mysql-proxy/bin/mysql-proxy -P 192.168.1.200:3306 -r 192.168.1.202:3306


-b 192.168.1.201:3306 -s/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting &

-P 代理服务器IP 及端口号默认端口4040

-r 从服务器IP 及端口号(可以指定多个从服务器)

-b 主服务器IP 及端口号

-s 调用的脚本

Pkill -9 mysql-proxy

Ulimit -a

Ulimit -n 10240

客户端测试:192.168.1.20

mysql -h 192.168.1.202 -u user1 -p123


最终效果

先关掉mysql—slave的同步,在master-mysql上成功添加一个库,但是却查找不到,继续添加此库报错已存在此库,就说明你对了。
本文的master只写,slave只读。由此进行负载