進行mysql的讀寫分離配置之前,應該先進行mysql主從複製的配置工作
wget
或者登陸mysql官網查詢其他版本的安裝包
2. 將安裝包移動到/usr/local/
目錄下並進行解壓
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz /usr/local/
cd /usr/local/
tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit mysql-proxy
建立mysql-proxy的配置檔案
cd /usr/local/mysql-proxy
mkdir lua
mkdir logs
cp share/doc/mysql-proxy/rw-splitting.lua ./lua #複製讀寫分離配置檔案
cp share/doc/mysql-proxy/admin-sql.lua ./lua #複製管理指令碼
vim /etc/mysql-proxy.cnf
在檔案內寫入以下內容
[mysql-proxy]
user=root #執行mysql-proxy使用者
admin-username=
$#主從mysql共有的使用者
admin-password=
$ proxy-address=192.168.60.160:4000 #mysql-proxy執行的埠(之後需要從這個埠進行連線)
proxy-read-only-backend-addresses=192.168.60.165
proxy-read-only-backend-addresses=192.168.60.167
proxy-read-only-backend-addresses=192.168.60.168
# 指明讀寫分離中進行讀的伺服器,每台伺服器寫一條命令
proxy-backend-addresses=192.168.60.196 #指明進寫的伺服器
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定控制讀寫分離的lua指令碼的路徑
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理模組的lua指令碼存放位置
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日誌的存放位置
log-level=info #定義log日誌級別,由高到低分別有(error|warning|info|message|debug)
daemon=1 #以守護程序方式執行(在後台執行)
keepalive=1 #崩潰後嘗試重啟
編輯完成後退出,將配置檔案的許可權設定為660(是軟體需求的,只能是660)
修改讀寫分離的lua指令碼
vim /usr/local/mysql-proxy/lua/rw-splitting.lua
在其中找到
min_idle_connections
max_idle_connections
兩個屬性,將對應的值修改為1,否則在連線數少的時候不會進行讀寫分離
建立mysql-proxy的軟連線
ln -s /usr/local/mysql-proxy/bin/mysql-proxy /usr/bin/
啟動讀寫分離
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
輸入命令檢視mysql-proxy是否啟動成功
ps -aux |
grep mysql-proxy
或者netstat -tupln|
grep
$
連線mysql-proxy
mysql -u$ -p $ -h $ -p $
存在的問題
管理埠起不來
服務不穩定,經常性的失效
改進方案
在mysql官網上建議使用mysql-router在生產環境上使用,或者使用阿里通過對mysql-proxy進行二次開發形成的讀寫分離中介軟體atlas
mysql讀寫分離
5.讀寫分離適用與讀遠大於寫的場景,如果只有一台伺服器,當select很多時,update和delete會被這些select訪問中的資料堵塞,等待select結束,併發效能不高。對於寫和讀比例相近的應用,應該部署雙主相互複製。6.可以在從庫啟動是增加一些引數來提高其讀的效能,例如 skip inno...
讀寫分離 MySQL
1 what 讀寫分離 讀寫分離,基本的原理是讓主資料庫處理事務性增 改 刪操作 insert update delete 而從資料庫處理select查詢操作。資料庫複製被用來把事務性操作導致的變更同步到集群中的從資料庫。2 why 那麼為什麼要讀寫分離呢?因為資料庫的 寫 寫10000條資料到or...
mysql讀寫分離
在資料庫集群架構中,讓主庫負責處理事務性查詢,而從庫只負責處理select查詢,讓兩者分工明確達到提高資料庫整體讀寫效能。當然,主資料庫另外乙個功能就是負責將事務性查詢導致的資料變更同步到從庫中,也就是寫操作。即主從複製和讀寫分離是離不開的 1 分攤伺服器壓力,提高機器的系統處理效率 讀寫分離適用於...