mysql 读写分离

常见的读写分离方案:
1)Amoeba读写分离
2)MySQL-Proxy读写分离
3)基于程序读写分离(效率很高,实施难度大,开发改代码)

2)原理 web 访问数据库,通过proxy4040端口作为转发到真实数据库3306端口 

wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz  

 

useradd -r mysql-proxy 创建用户 

tar zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz -C /usr/local

mv /usr/local/mysql-proxy-0.8.4-linux-el6-x86-64bit /usr/local/mysql-proxy 

vi在/etc/profile中加入如下语句:
export PATH=$PATH:/usr/local/mysql-proxy/bin/      设为环境变量 

source /etc/profile 加载变量  

Mysql-proxy的相关参数如下:
--help-all   :获取全部帮助信息;
--proxy-address=host:port  :代理服务监听的地址和端口;
--admin-address=host:port  :管理模块监听的地址和端口;
--proxy-backend-addresses=host:port :后端mysql服务器的地址和端口;
--proxy-read-only-backend-addresses=host:port :后端只读mysql服务器的地址和端口;
--proxy-lua-script=file_name :完成mysql代理功能的Lua脚本;
--daemon  :以守护进程模式启动mysql-proxy;
--keepalive  :在mysql-proxy崩溃时尝试重启之;
--log-file=/path/to/log_file_name :日志文件名称;
--log-level=level :日志级别;
--log-use-syslog :基于syslog记录日志;
--plugins=plugin:在mysql-proxy启动时加载的插件;
--user=user_name  :运行mysql-proxy进程的用户;
--defaults-file=/path/to/conf_file_name : 默认使用的配置文件路径;其配置段使用[mysql-proxy]标识;
--proxy-skip-profiling : 禁用profile;
--pid-file=/path/to/pid_file_name :进程文件名;

mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.10.128:3306" --proxy-read-only-backend-addresses="192.168.10.130:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"   

 netstat -tlun   

4040是proxy端口;4041是管理端口

mysql -h192.168.10.129 -uadmin -p -P4041  IP为安装proxy的机子

select * from backends;    查看状态 

mysql -h192.168.10.129 -uxian  -p -P4040   数据写入测试              (  WEB连接数据库改为proxy代理IP 改web服务器发布目录PHP配置文件为4040端口 /usr/local/apache2/htdocs/upload/config/config_global.php与config_ucenter.php 改www.service.com:4040    同时修改WEB服务器/etc/hosts为代理IP  192.168.10.129 www.service.com  主从数据库都要对proxy的IP进行授权)

posted @ 2017-03-18 16:52  林夕之风  阅读(151)  评论(0编辑  收藏  举报