mysql 讀寫分離

2021-09-20 22:41:26 字數 2290 閱讀 6499

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 分攤伺服器壓力,提高機器的系統處理效率 讀寫分離適用於...