mysql基于mysql-proxy的读写分离

  1. mysql-proxy:192.168.20.109

    master: 192.168.20.135

    slave;192.168.20.137


2.下载msql-proxy:wget http://cdn.mysql.com/Downloads/MySQL-Proxy/mysql-proxy-0.8.2-linux-glibc2.3-x86-64bit.tar.gz

   useradd -g mysql-proxy -s /sbin/nologin

   tar zxvf mysql-proxy-0.8.2-linux-glibc2.3-x86-64bit.tar.gz -C /usr/local

   mv /usr/local/mysql-proxy-0.8.2-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy

   export PATH=$PATH:/usr/local/mysql-proxy/bin/

   echo "PATH=$PATH:/usr/local/mysql-proxy/bin" >> /etc/profile


3.查看mysql-proxy --help

  

--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 :进程文件名;


4.在master数据库

mysql> grant all on *.* to root@'%' identified by '密码';


5.在代理服务器上

mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.182.135:3306" --proxy-read-only-backend-addresses="192.168.182.137: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"


6.ps -ef | grep mysql-proxy

  可以看到495  是mysql-proxy的核心启动进程

  netstat -tlunp | grep mysql-proxy

  可以看到4040是mysql-proxy的端口 4041是admin的管理端口


7.然后到slave端去验证是否能通过代理端口4040 端口连接到 mysql-proxy

  wKiom1VJwhKRgqzzAAGkGD1_pGU968.jpg


wKioL1VJxG7RX9ayAAH9sfHTTbA025.jpg


8.mysql -uadmin -pyzg1314520 -h192.168.20.109 --port=4041 -padmin

   验证admin的登录查看

    select * from backends;

wKioL1VJxWLRnADHAADiCIsOk1A694.jpg

因为rw-splitting.lua脚本默认有4个链接才启用分离;所以多开启几个终端;多测试几下;你也可以去修改里面的相关值来实现state全部UP.

相关文章
相关标签/搜索