Linux安装mysql-proxy搭建读写分离平台
步骤(1):linux安装lua语言解析器
前提:下载源码包
[root@web~]#tarzxflua-5.2.0.tar.gz-C/usr/local
[root@web~]#cd/usr/local/lua-5.2.0
[root@weblua-5.2.0]#vimMakefile
修改:
INSTALL_TOP=/usr/local/lua
[root@weblua-5.2.0]#make
Pleasedo''makePLATFORM''wherePLATFORMisoneofthese:
aixansibsdfreebsdgenericlinuxmacosxmingwposixsolaris
Seedoc/readme.htmlforcompleteinstructions.
#执行make,会提示让你输入make系统平台
[root@weblua-5.2.0]#makelinux
[root@weblua-5.2.0]#makeinstall
[root@web~]#/usr/local/lua/bin/lua
Lua5.2.0Copyright(C)1994-2011Lua.org,PUC-Rio
>
错误:
gcc-O2-Wall-DLUA_COMPAT_ALL-DLUA_USE_LINUX-c-olua.olua.c
make[1]:Leavingdirectory`/root/lua-5.2.0/src''
make:[linux]Error2
如若出现以上情况执行:yuminstall-yreadline-develncurses-devel
步骤(2)安装mysql-proxy
数据库:192.168.1.121(主库)192.168.1.100(从库)
Mysql-proxy:192.168.1.121(主库)附:服务器有限,搭配在主库上
Client:客户端192.168.1.150(本地机器)
1、安装proxy主程序
>tarzxfmysql-proxy-0.8.0-linux-rhel5-x86-32bit.tar.gz-C/usr/local--解压
>cd/usr/local--进入安装目录
>mvmysql-proxy-0.8.0-linux-rhel5-x86-32bitmysql-proxy--重命名
2、修改proxy代理的lua脚本:
>cd/usr/local/mysql-proxy/share/doc/mysql-proxy
>vimrw-splitting.lua--更改读写分离参数
附:
38行min_idle_connections=1,//超过一个连接时,实现读写分离,只有一个连接时,会连接到写到192.168.7.5,超过一个则连接到7.6,在虚拟机中达到3个连接才会分离,(环境问题)
39行max_idle_connections=1,//此行不起作用
3.主从上增加数据库用户(elroy,elroy)
Master:192.168.1.121登录执行
grantallon.toelroy@"%"identifiedby"elroy";
Slave:192.168.1.100登录执行
grantallon.toelroy@"%"identifiedby"elroy";
4.测试客户端是否可以通过elroy用户连接
Client:192.168.1.150执行
Mysql-uelroy-pelroy-h192.168.1.121--登录主库
Mysql-uelroy-pelroy-h192.168.1.100--登录从库
5.启动mysql-proxy
>/usr/local/mysql-proxy/bin/mysql-proxy-P192.168.1.121:4040-r192.168.1.100:3306-b192.168.1.121:3306-s/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua&
附:
-P代理服务器IP及端口号默认端口4040
-r从服务器IP及端口号(可以指定多个从服务器)
-b主服务器IP及端口号
-s调用的脚本
如果有错误信息,执行下面语句
Pkill-9mysql-proxy
Ulimit-a
Ulimit-n10240
正确启动后,没有提示
检查时候后台启动ps-ef|grepmysql-proxy
6.实现远程连接
client执行:mysql-uelroy-pelroy-h192.168.1.121-P4040
如连接不上:在主库和从库关闭防火墙:serviceiptablesstop
7.测试读写分离
>在从库表中插入几条数据,通过mysql-proxy代理登录后进行查询此表。观察是否是从 表的数据(如果没有反应,请再开一个窗口,因为设置的大于1个连接执行读写分离)
>进入从库,slavestop关闭主从复制。然后通过mysql-proxy向表中写入数据,然后查 看是否更新。
|
|