学习版本:mysql-proxy-0.8.5-1.el6.x86_64

环境准备:

  MySQL_A10.0.13-MariaDB)读写n1.test.com;172.16.2.11

  MySQL_B10.0.13-MariaDB)只读:n2.test.com;172.16.2.12

  MySQL-proxy(0.8.5):n3.test.com;172.16.2.13

 

mysql-proxy:

epel源:yum -y install mysql-proxy

使用官方二进制格式文件中的rw-splitting.lua脚本进行读写分离

 

# mysql-proxy --help-all        ==>命令帮助

配置文件:/etc/mysql-proxy.cnf

MySQL读写分离之mysql-proxy_mysql-proxyMySQL读写分离之mysql-proxy_mysql-proxy_02

[mysql-proxy]
daemon = true
pid-file = /var/run/mysql-proxy.pid
log-file = /var/log/mysql-proxy.log
log-level = debug        #调试级别
max-open-files = 1024
plugins = admin,proxy
user = mysql-proxy
#
#Proxy Configuration
proxy-address = 0.0.0.0:3306        #代理服务监听的地址和端口
proxy-backend-addresses = 172.16.2.11:3306        #支持读写操作的后端mysql                       
proxy-read-only-backend-addresses = 172.16.2.12:3306        # 只读后端
#proxy-lua-script = 
proxy-lua-script = /usr/lib64/mysql-proxy/lua/rw-splitting.lua        #读写分离脚本
#proxy-skip-profiling = true
#
# Admin Configuration
admin-address = 0.0.0.0:4041        #msyql-prxoy连入的管理端口
admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua         #msyql-prxoy连入的管理脚本位置
admin-username = admin         #msyql-prxoy连入的管理帐号
admin-password = admin         #msyql-prxoy连入的管理密码

mysql-proxy.cnf

 

后端主机需要创建授权帐号

  • mysql> GRANT ALL ON *.* TO root@‘172.16.%.%‘ IDENTIFIED BY ‘cm‘; 

  • mysql> FLUSH PRIVILEGES;

在mysql-proxy发起查询或修改语句

  • # mysql -uroot -h172.16.2.13 -pcm -e ‘SHOW DATABASES;‘  

  • # mysql -uroot -h172.16.2.13 -pcm -e ‘CREATE DATABASE test9;‘

  • 在后端的mysql能看到创建的数据库test9
    MySQL读写分离之mysql-proxy_mysql-proxy_03MySQL读写分离之mysql-proxy_mysql-proxy_04

本机登陆mysql-proxy管理

  • # mysql -uadmin -padmin -p4041 -h172.16.2.13

本机登陆后mysql-proxy后获取帮助

  • mysql> SELECT * FROM help

本机登陆后mysql-proxy后查询后端节点

  • mysql> SELECT * FROM backends; 

MySQL读写分离之mysql-proxy_mysql-proxy_05

MySQL读写分离之mysql-proxy_mysql-proxy_06

MySQL读写分离之mysql-proxy

MySQL读写分离之mysql-proxy_mysql-proxy_07
获取【下载地址】     【免费支持更新】
A 代码生成器(开发利器);全部是源码  
   增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成
   就不用写搬砖的代码了,生成的放到项目里,可以直接运行
B 阿里巴巴数据库连接池druid;
  数据库连接池  阿里巴巴的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势
C 安全权限框架shiro ;
  Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安全,更可靠
D ehcache 分布式缓存;
  是一个纯Java的进程内缓存框架,具有快速、精干等特点,广泛使用的开源Java分布式缓存。