一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。
前提主从复制―->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
3,LUA 脚本:
/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只读。由此进行负载