1、oneproxy簡介
按照官方介紹:OneProxy 中間件是具備透明讀寫分離、分庫分表功能的數據庫中間件,輕鬆構建分佈式數據庫集羣,支持Oracle/MySQL等多種數據庫!
本次安裝OneProxy FOR MySQL。
官方地址:http://www.onexsoft.com/proxy.html
2、oneproxy下載地址
http://www.onexsoft.com/download.html
3、系統環境
CentOS release 6.8 (Final) ( cat /etc/redhat-release)
4、安裝及部署
創建安裝目錄
#mkdir /opt/websuite/
#cd /opt/websuite/
#wget http://www.onexsoft.com/software/oneproxy-rhel6-linux64-v6.2.0-ga.tar.gz
#tar -xvf oneproxy-rhel6-linux64-v6.2.0-ga.tar.gz
解壓完成對應目錄下有一個oneproxy的目錄,目錄結構如下:
其中demo.sh是初始啓動腳本,oneproxy.service是平時start、stop、restart腳本。
將demo.sh和oneproxy.service腳本里的目錄改成自行設置的安裝目錄
可以將oneproxy.service啓動腳本copy至/etc/init.d/oneproxy
#cp oneproxy.service /etc/init.d/oneproxy
修改配置文件:
#cd conf/proxy.conf修改後的配置如下:
[oneproxy]
mysql-version = 5.7.25
proxy-license = A2FF461456A67F28,D2F6A5AD70C9042D
proxy-httpserver = 0.0.0.0:8080
#proxy-auto-readonly = 0
#proxy-slave-addresses.1 = db1:3306@default
proxy-master-addresses.1 = 127.0.0.1:3306@default
admin-address = 127.0.0.1:4041
proxy-address = 127.0.0.1:3307
# proxy-slave-addresses.3 = ...
#proxy-group-policy = default:read_slave
#proxy-user-list = default:test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test
proxy-user-list.1 = default:root/2B62948E86183F2C3B1469315C9D857338D3D333@bigdata
proxy-charset = utf8_general_ci
注意:當oneproxy後端只有一臺mysql服務器的時候proxy-auto-readonly=1這個參數要禁止掉,不然會出現sql不能在oneproxy執行的情況。
增加 proxy-user-list.1-n 項,表示新增加不同的用戶。前提是這些用戶必須可以登錄mysql,並在mysql中有響應的操作權限。
proxy-user-list.1中數據庫密碼(2B62948E86183F2C3B1469315C9D857338D3D333)需要進入oneproxy管理後臺生成,.
啓動oneproxy:
#./demo.sh (如果沒有執行權限,使用命令 chmod +x demo.sh)
進入管理後臺:
#mysql -uadmin -pOneProxy -h 127.0.0.1 -P4041 (進入oneproxy管理後臺使用的默認賬號&密碼)
紅框中的密碼copy出來粘貼到 proxy-user-list.1中。
改完配置,重啓opneproxy
#/etc/init.d/oneproxy restart
確認oneproxy監聽端口3307和工具管理端口4041監聽正常
#netstat -lntp
5、通過oneproxy代理連接業務數據庫
其實就是 proxy-address = 127.0.0.1::3307 連接 proxy-master-addresses.1 = 127.0.0.1:3306@default
在客戶端中連接oneproxy,由oneproxy代理去連接各業務數據庫,跟連接普通的數據庫一樣,只不過端口要使用oneproxy配置文件配置的端口。
#mysql -uroot -p123456 -h 127.0.0.1 -P3307
6、oneproxy監控頁面
訪問127.0.0.1:8080 (oneproxy所在ip:8080,確保8080端口沒有被其他應用佔用)