1.确保已配置好主备集群
A)配置
可参考MySQL官方文档(https://dev.mysql.com/doc/refman/5.6/en/replication-howto.html)
或者我的博客(http://www.cnblogs.com/youge-OneSQL/p/4579833.html )
B)创建用户
在主备集群上的MySQL分别执行如下命令:
mysql -e "grant all privileges on *.* to test@'%' identified by 'test' "
2.下载新版本OneProxy
http://www.onexsoft.cn/software/oneproxy-rhel6-linux64-v5.7-ga.tar.gz
3.解压到指定目录
mv oneproxy-rhel6-linux64* /usr/local/
tar zxvf oneproxy-rhel6-linux64*
4)更改启动文件
cd oneproxy
cat demo.sh
#!/bin/bash export ONEPROXY_HOME=/data/oneproxy
if [ -f ${ONEPROXY_HOME}/oneproxy.pid ]; then kill -9 `cat ${ONEPROXY_HOME}/oneproxy.pid` fi
sleep 2 # valgrind --leak-check=full --show-reachable=yes \ ${ONEPROXY_HOME}/oneproxy --proxy-address=:3307 --proxy-extra-address=:3308 \ --proxy-master-addresses=192.168.1.119:3306@default \ --proxy-user-list=test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test \ --proxy-part-tables=${ONEPROXY_HOME}/part.txt \ --proxy-charset=gbk_chinese_ci --proxy-found-rows \ --proxy-group-policy=default:master-only \ --event-threads=6 --proxy-group-security=default:0 \ --log-file=${ONEPROXY_HOME}/oneproxy.log \ --pid-file=${ONEPROXY_HOME}/oneproxy.pid |
更改后
#/bin/bash # export ONEPROXY_HOME=/usr/local/oneproxy
if [ -f ${ONEPROXY_HOME}/oneproxy.pid ]; then kill -9 `cat ${ONEPROXY_HOME}/oneproxy.pid` fi
sleep 2 # valgrind --leak-check=full --show-reachable=yes \ ${ONEPROXY_HOME}/oneproxy --proxy-address=:3307 --proxy-extra-address=:3308 \ --proxy-master-addresses=<IP1>:3306@data1 \ --proxy-slave-addresses=<IP2>:3306@data1 \ --proxy-user-list=test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test \ --proxy-part-tables=${ONEPROXY_HOME}/part.txt \ --proxy-charset=utf8_bin --proxy-found-rows \ --proxy-group-policy=data1:read-balance \ --event-threads=6 \ --keepalive \ --log-file=${ONEPROXY_HOME}/oneproxy.log \ --pid-file=${ONEPROXY_HOME}/oneproxy.pid |
注释:
A) --proxy-user-list=test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test 其中个test为连接proxy的用户名,该用户名也是用来连接后端数据库的用户名;1378F6CC3A8E8A43CA388193FBED5405982FBBD3为test用户的加密口令;后一个test为各个数据库节点中的test数据库。
B) 口令加密。
此时可以启动oneproxy
cd /usr/local/oneproxy
sh ./demo.sh
进入管理端口,然后键入passwd <string>。
mysql -uadmin -pOneProxy -P4041 --protocol=TCP passwd test |
输出为:
1378F6CC3A8E8A43CA388193FBED5405982FBBD3
5) 配置完毕
通过3307端口,即可实现读写分离
mysql -utest -ptest -P3307 -h<IP>
6)重启oneProxy
A) 关闭
ps aux | grep oneproxy | awk '{print $2}' | xargs kill -9
注:该方法会关闭在该主机上运行的所有OneProxy实例
B) 启动
cd /usr/local/oneproxy
sh ./demo.sh