转自那一页随风博客
http://www.cnblogs.com/phpstudy2015-6/p/6687480.html
阅读目录
ip:192.168.95.11(写)、192.168.95.12(读)、192.168.95.13(mysql-proxy)
回到顶部
3、配置主从复制
详细可以参考:mysql主从复制与主主复制
http://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label2
粗略介绍一下数据库的主从复制的配置:
第一步:
在192.168.95.11中创建一个192.168.95.12主机中可以登录的MySQL用户
用户:mysql12
密码:mysql12
mysql>GRANT REPLICATION SLAVE ON . TO ‘mysql12’@’192.168.95.12’ IDENTIFIED BY ‘mysql12’;
mysql>FLUSH PRIVILEGES;
第二步:
查看192.168.95.11MySQL服务器二进制文件名与位置
mysql>SHOW MASTER STATUS;
第三步:
告知二进制文件名与位置
在192.168.95.12中执行:
复制代码
mysql> change master to
-> master_host='192.168.95.11',
-> master_user='mysql12',
-> master_password='mysql12',
-> master_log_file='mysql-bin.000124',
-> master_log_pos=586;
复制代码
第四步:
在192.168.95.12中
mysql>SLAVE START; #开启复制
mysql>SHOW SLAVE STATUS\G #查看主从复制是否配置成功
主从复制配置成功!
(注意:上面Relicate_Do_DB:aa表示主从复制只针对数据库aa【这是我之前设置的就没改了】,这里就不讲这个了,要想去了解学医这个的话可以参考文章http://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label7)
回到顶部
4、MySQL读写分离配置
百度云下载:链接:http://pan.baidu.com/s/1slTl18L 密码:9j0m
回到顶部
4.1、安装lua
官网下载:http://www.lua.org/download.html
Lua 是一个小巧的脚本语言。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
1)、安装lua需要依赖很多软件包。
可以通过rpm -qa | grep name检查以下软件是否安装:
gcc、gcc-c++、autoconf、automake、zlib、libxml、ncurses-devel、libmcrypt、libtool、flex、pkgconfig、libevent、glib*
若缺少相关的软件包,可通过yum -y install方式在线安装,或直接从系统安装光盘中找到并通过rpm -ivh方式安装。(我的话一般是直接在系统光盘软件库中找到直接rpm安装的,有些找不到,则先在网上下载然后在ftp传给linux再进行安装)
2)、依赖软件安装完毕后则进行编译安装lua
MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua。
官网下载:http://www.lua.org/download.html(下载源码包)
复制代码
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
make linux
make install
export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm"
(我安装的时候是直接在光盘软件库中找到,直接rpm安装)
复制代码
回到顶部
4.2、安装mysql-proxy
1)、首先查看linux版本确认是32位还是64为系统
查看linux内核版本
# cat /etc/issue
查看linux版本
# cat /proc/version
2)、按系统位数下载(上面百度云链接64位的文件)
3)、安装
tar –zxvf mysql-proxy-0.8.5- linux-rhel5-x86-64bit.tar.gz
mkdir /usr/local/mysql-proxy
cp ./ mysql-proxy-0.8.5-linux-rhel5-x86-64bit/* /usr/local/mysql-proxy
cd /usr/local/mysql-proxy
安装成功
回到顶部
5、MySQL读写分离测试
回到顶部
1)、修改rw-splitting.lua文件
修改默认连接,进行快速测试,不修改的话要达到连接数为4时才启用读写分离
#cp /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua ./
# vi rw-splitting.lua
回到顶部
2)、修改完成后,启动mysql-proxy
cd /usr/local/mysql/bin
./mysql-proxy --proxy-read-only-backend-addresses=192.168.95.12:3306 --proxy-backend-addresses=192.168.95.11:3306 --proxy-lua-script=/usr/local/mysql-proxy/rw-splitting.lua &
参数:
--proxy-read-only-backend-addresses #只读服务器地址(ip)
--proxy-backend-addresses #服务器地址(主服务器)
--proxy-lua-script #lua脚本路劲
& #表示后台执行
回到顶部
3)、创建用于读写分离的数据库连接用户
用户名:proxy1
密 码:321
mysql>grant all on . to 'proxy1'@'192.168.95.13' identified by '321';
mysql>use aa;
mysql>create table tab1(id int auto_increment,name varchar(32) not null,primary key(id));
【因为已经开启了主从复制所以,11、12主机mysql中都创建了这个用户】
回到顶部br/> 4)、测试登陆账号proxy1@192.168.95.13进行添加数据
可以使用任意ip客户端登陆这个账号
# ./mysql -u proxy1 -P4040 -h192.168.95.13 –p
(ps:id是自增长,之前高主主复制的时候更改了配置文件,还没更改回来,就将就用着先吧)
回到顶部
5)、关闭12mysql的从复制
mysql> stop slave;
回到顶部
6)、证明写分离
使用proxy1@192.168.95.13账号打开多个客户端进行插入数据
mysql> insert into tab1 (name) values('stop_slave11111');
mysql> insert into tab1 (name) values('stop_slave6666’);
分别登陆11mysql与12mysql查看aa.tab1中的数据
结果中显示插入的数据存在与主数据库,而从数据库没有,所以证明写能够分离。
回到顶部
7)、证明读分离
使用proxy1@192.168.95.13账号登陆mysql,查看aa.tab1中的数据
mysql>use aa;
mysql>select*from tab1;
结果中显示只有从数据库的数据,结合上面的测试,可以证明读分离。
回到顶部
6、建议
为了方便启动与管理mysql-proxy可以创建mysql-proxy服务管理脚本
PROXY_PATH=/usr/local/mysql-proxy/bin //定义mysql-proxy服务二进制文件路径
PROXY_PID=/usr/local/mysql-proxy/run/mysql-proxy.pid //定义mysql-proxy PID文件路径
本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/2071385