學習版本:mysql-proxy-0.8.5-1.el6.x86_64html
環境準備:mysql
MySQL_A(10.0.13-MariaDB)讀寫:n1.test.com;172.16.2.11sql
MySQL_B(10.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腳本進行讀寫分離mybatis
# mysql-proxy --help-all ==>命令幫助oracle
配置文件:/etc/mysql-proxy.cnf框架
[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-proxy管理
# mysql -uadmin -padmin -p4041 -h172.16.2.13
本機登錄後mysql-proxy後獲取幫助
mysql> SELECT * FROM help
本機登錄後mysql-proxy後查詢後端節點
mysql> SELECT * FROM backends;
獲取【下載地址】 【免費支持更新】
A 代碼生成器(開發利器);所有是源碼
增刪改查的處理類,service層,mybatis的xml,SQL( mysql 和oracle)腳本, jsp頁面 都生成
就不用寫搬磚的代碼了,生成的放到項目裏,能夠直接運行
B 阿里巴巴數據庫鏈接池druid;
數據庫鏈接池 阿里巴巴的 druid。Druid在監控、可擴展性、穩定性和性能方面都有明顯的優點
C 安全權限框架shiro ;
Shiro 是一個用 Java 語言實現的框架,經過一個簡單易用的 API 提供身份驗證和受權,更安全,更可靠
D ehcache 分佈式緩存;
是一個純Java的進程內緩存框架,具備快速、精幹等特色,普遍使用的開源Java分佈式緩存。