在写此篇文章之前,MinUnix写过一篇关于用amoeba来实现mysql读写分离的文章;

有关Amoeba可参考:http://www.minunix.com/2013/11/amoeba-introduction/

在做mysql读写分离时,mysql-proxy做到代理功效,所有mysql请求的均发给mysql-proxy,之后又mysql-proxy来决定是发给某台DBServer来处理。

在此之前需要配置好主从数据库,配置方法不再阐述,可参考:http://www.minunix.com/2013/05/mysql-slave/

mysql-proxy 下载地址:http://t.cn/zRL1mGw  目录下的 \MySQL\mysql-proxy-0.8.3.zip

# cd /tmp/src          ///  mysql-proxy 下载到/tmp/src目录下

# tar  xf   mysql-proxy-0.8.3.zip

# useradd  mysql-proxy  -M -/sbin/nologin

# mv  mysql-proxy-0.8.3  /usr/local/mysql-proxy

# export PATH=$PATH:/usr/local/mysql/proxy/bin                      /// 添加环境变量

 

介绍mysql-proxy 参数简单介绍:

--help-all 查看所有的帮助信息

--help-proxy 查看有关代理模块多大帮助信息

--daemon 以守护进程方式启动mysql-proxy

--user 运行mysql-proxy进程的用户

--log-use-syslog 基于syslog记录日志

--plugins 启动mysql-proxy所加载的插件

--keepalive 在mysql-proxy崩溃时尝试重启

--proxy-address=host:port mysql-proxy服务端监听的端口,默认是4040

--proxy-backend-addresses=host:port 指定远程mysql服务器地址和端口

--proxy-read-only-backend-addresses 远程只读slave服务器地址和端口

--proxy-lua-script mysql-proxy所使用的lua脚本的地址

--proxy-skip-profiling 关闭查询分析功能,缺省是打开的

--admin-address=host:port 管理模块监听的地址和端口

--admin-username 管理员用户名

--admin-password 管理员的密码

--admin-lua-script 管理员使用的lua脚本地址

 

接下来启动mysql-proxy,在此之前要确保主从同步正常

# mysql-proxy --deamon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log  --plugins="proxy" --proxy-backend-addresses="192.168.0.162:3306"  --proxy-read-only-backend-addresses="192.168.0.171:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua"  --plugins="admin"  --admin-username="admin" --admin-password="123456" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua" &

查看启动进程:

[root@web-01 ~]# netstat -tnlp|grep mysql-proxy

tcp 0 0 0.0.0.0:4040 0.0.0.0:* LISTEN 5186/mysql-proxy

tcp 0 0 0.0.0.0:4041 0.0.0.0:* LISTEN 5186/mysql-proxy

其中:4040是proxy的端口,4041是admin的端口,也就是管理端口

查看mysql-proxy 状态:

 

 

之后通过4040端口连上数据,对数据库进行读写操作之后state就会呈现up状态。

作者:MinUnix    转载请注明出处:http://www.minunix.com/2013/12/mysql-proxy-readorwrite/

更多内容可参考http://www.minunix.com  或 http://t.cn/zRL1mGw