mysql-proxy:簡稱mysql讀寫分離;主要目的是為了提高web站點的訪問速度。
首先搭建mysql主從,參考:
cd /usr/local/src
wget
tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
cp -r mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
授權:chmod 755 /usr/local/mysql-proxy
chown -r mysql:mysql /usr/local/mysql-proxy
設定環境變數:
vim /etc/profile
新增:lua_path="/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua"
export lua_path
export path=$path:/usr/local/mysql-proxy/bin
退出後:
source /etc/profile
建立mysql使用者:
mysql主從都需要建立相同的使用者與密碼:
grant all on *.* to 'test'@'%' identified by '123456';
新建mysql-proxy配置檔案:
vim /etc/mysql-proxy.cnf
新增:[mysql-proxy]
admin-username = test
admin-password = 123456
daemon = true
keepalive = true
proxy-backend-addresses = 192.168.1.2:3306
proxy-read-only-backend-addresses = 192.168.1.2: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個,一號程序用來監》視二號進行,如果二號程序死掉自動重建,此引數在舊版本中無法使用)
建立mysql-proxy啟動指令碼:
vim /etc/init.d/mysql-proxy
#!/bin/bash
mode=$1
if [ -z "$mode" ] ; then
mode="start"
ficase $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
fiesac
exit 0
授權:chmod 755 /etc/init.d/mysql-proxy
chkconfig --add mysql-proxy
啟動mysql-proxy:
service mysql-proxy start
mysql讀寫分離
5.讀寫分離適用與讀遠大於寫的場景,如果只有一台伺服器,當select很多時,update和delete會被這些select訪問中的資料堵塞,等待select結束,併發效能不高。對於寫和讀比例相近的應用,應該部署雙主相互複製。6.可以在從庫啟動是增加一些引數來提高其讀的效能,例如 skip inno...
讀寫分離 MySQL
1 what 讀寫分離 讀寫分離,基本的原理是讓主資料庫處理事務性增 改 刪操作 insert update delete 而從資料庫處理select查詢操作。資料庫複製被用來把事務性操作導致的變更同步到集群中的從資料庫。2 why 那麼為什麼要讀寫分離呢?因為資料庫的 寫 寫10000條資料到or...
mysql讀寫分離
在資料庫集群架構中,讓主庫負責處理事務性查詢,而從庫只負責處理select查詢,讓兩者分工明確達到提高資料庫整體讀寫效能。當然,主資料庫另外乙個功能就是負責將事務性查詢導致的資料變更同步到從庫中,也就是寫操作。即主從複製和讀寫分離是離不開的 1 分攤伺服器壓力,提高機器的系統處理效率 讀寫分離適用於...