日期:2014-05-16 浏览次数:20718 次
废话不说!
Mysql-proxy是什么,大家都知道,不知道的就别往下看了...
首先搭建 mysql 主从数据库,参考: http://blog.csdn.net/swengineer/archive/2011/03/11/6239711.aspx
下载 mysql-proxy 最新版,本文撰写时最新版本为 MySQL Proxy 0.8.1 alpha
安装 mysql-proxy 步骤如下:
解压 mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
tar zxvf mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz cp -R mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql
新建或编辑 /etc/mysql-proxy.cnf 文件,添加以下内容 ( 具体参数根据实际情况修改 ) :
vi /etc/mysql-proxy.cnf [mysql-proxy] admin-username = zhangdongyu admin-password = 123123 daemon = true keepalive = true proxy-backend-addresses = 192.168.0.88:3306 proxy-read-only-backend-addresses = 192.168.0.88:3307 proxy-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua admin-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/admin-sql.lua log-file = /usr/local/proxy-mysql/cn.log log-level = debug
?
主要参数注解:
proxy-backend-addresses??????????????????? mysql 主库(写)地址
proxy-read-only-backend-addresses???? mysql 从库(读)地址
proxy-lua-script???????????????????????????????? 读写分离脚本
admin-lua-script???????????????????????????????? admin 脚本
admin-username???????????????????????????????? 数据库用户名(主从上都需建立相同用户)
admin-password???????????????????????????????? 数据库密码
daemon???????????????????????????????????????????? daemon 进程运行
keepalive?????????????????????????????????????????? 保持连接(启动进程会有 2 个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用)
编辑 profile/.bash_profile 脚本
vi /etc/profile( 或者 .bash_profile) LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua" export LUA_PATH export PATH=$PATH:/usr/local/proxy-mysql/bin :wq source /etc/profile
?
为方便建立建立 mysql-proxy.sh 脚本
#!/bin/bash mode=$1 if [ -z "$mode" ] ; then mode="start" fi case $mode in start) mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log & ;; stop) killall -9 mysql-proxy ;; restart) if $0 stop ; then $0 start else echo "Restart failed!" exit 1 fi ;; esac exit 0?
启动 mysql-proxy
sh 脚本
启动: ./mysql-proxy.sh? 或 ./mysql-proxy.sh start
?
重启: ./mysql-proxy.sh restart
停止: ./mysql-proxy.sh stop
?
测试:
为达到测试效果,修改 admin-sql.lua 脚本以下两行
vi /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua