廢話不說!
mysql-proxy是什麼,大家都知道,不知道的就別往下看了...
首先搭建
mysql
主從資料庫,參考:
最新版,本文撰寫時最新版本為
mysql proxy 0.8.1 alpha
安裝mysql-proxy
步驟如下:
解壓mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
tar zxvf mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
cp -r mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql
新建或編輯
/etc/mysql-proxy.cnf
檔案,新增以下內容
( 具體引數根據實際情況修改) :
vi /etc/mysql-proxy.cnf
[mysql-proxy]
admin-username = zhangdongyu
admin-password = 123123
daemon = true
keepalive = true
proxy-backend-addresses = 192.168.0.88:3306
proxy-read-only-backend-addresses = 192.168.0.88:3307
proxy-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua
admin-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/admin-sql.lua
log-file = /usr/local/proxy-mysql/cn.log
log-level = debug
主要引數註解:
proxy-backend-addresses mysql
主庫(寫)位址
proxy-read-only-backend-addresses mysql
從庫(讀)位址
proxy-lua-script
讀寫分離指令碼
admin-lua-script admin
指令碼 admin-username
資料庫使用者名稱(主從上都需建立相同使用者)
admin-password
資料庫密碼
daemon daemon
程序執行
keepalive
保持連線(啟動程序會有
2 個,一號程序用來監視二號進行,如果二號程序死掉自動重建,此引數在舊版本中無法使用)
編輯profile/.bash_profile
指令碼 vi /etc/profile(
或者.bash_profile)
lua_path="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"
export lua_path
export path=$path:/usr/local/proxy-mysql/bin
:wqsource /etc/profile
為方便建立建立
mysql-proxy.sh
指令碼 #!/bin/bash
mode=$1
if [ -z "$mode" ] ; then
mode="start" fi
case $mode in
start)
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log & ;;
stop)
killall -9 mysql-proxy ;;
restart)
if $0 stop ; then
$0 start
else
echo "restart failed!"
exit 1 fi
;;esac
exit 0
啟動mysql-proxy
sh 指令碼
啟動:./mysql-proxy.sh 或
./mysql-proxy.sh start
啟動日誌
重啟:./mysql-proxy.sh restart
停止:./mysql-proxy.sh stop
測試:
為達到測試效果,修改
admin-sql.lua
指令碼以下兩行
vi /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit =
end 重啟
mysql-proxy
** 開啟兩個終端分別連線**:
one:./mysql -h192.168.0.88 -uzhangdongyu -p123123 -p4040
two :
./mysql -h192.168.0.88 -uzhangdongyu -p123123 -p4040
可看到連線成功資訊:
one 客戶端: 執行
select
語句觀察資料庫
log 檔案
select * from z_member_info;
觀察主從庫日誌檔案,發現查詢發生在主庫?
主庫:192.168.0.88:3306
日誌檔案:
tail -f /usr/local/mysql/localstate/mysqlexecute.log
這是因為
mysql-proxy
**會檢測客戶端連線,當連線沒有超過
min_idle_connections
預設值時,不會進行讀寫分離,即查詢操作會發生到主庫上。
操作two
客戶端: 執行
select
語句觀察資料庫
log 檔案
select * from z_member_info;
觀察主從庫日誌檔案,發現主庫沒有任何記錄,查詢日誌記錄在從庫。
從庫:192.168.0.88:3306
日誌檔案:
tail -f /usr/local/mysql3307/localstate/mysqlexecute.log
操作兩個終端進行
insert
操作,會發現寫操作始終被主庫(
3306
)日誌檔案記錄。
至此mysql-proxy
安裝測試完成。
注:生產環境一定要根據實際情況配置相關檔案,至於
lua檔案強烈推薦讀者自行,目前正在研究
lua檔案的優化與定製,不久會發上來。
keepalived 主從搭建
基本環境 centos7 1 原始碼包安裝 cd usr local src 進入到準備放原始檔的目錄 root localhost src pwd usr local src root localhost src tar xvf keepalived 2.0.18.tar.gz 解壓 root l...
MySQL主從搭建筆記
作業系統 windows10,64,mysql版本 解壓方式安裝的mysql8.0.20 1.my.ini配置 master 主從 master設定 server id 1 log bin mysql bin binlog format row master配置完後,重啟master的mysql服務...
mysql主從複製搭建
我們採用自定義安裝模式 選擇32位或64位 預設即可 安裝完成 開始配置mysql 配置 使用安裝器是無法安裝多例項的,只能手動安裝。1 複製安裝好的3380資料夾到3381 2 進入3381 logs目錄下將所有檔案刪除 3 進入3381 data目錄,將所有的log檔案刪除 注意不是所有檔案哦!...