mysql-proxy實現讀寫分離

mysql-proxy實現讀寫分離的前提是已經做好了mysql主從。

環境說明:
192.168.247.180 master
192.168.247.160 slave
192.168.247.192 mysq-proxy調度機
客戶端(測試):192.168.247.170

系統:centos7
mysql5.6

安裝mysql-proxy
mysql-proxy下載地址:mysql-proxy

cd /usr/local/src/
wget https://downloads.mysql.com/archives/get/p/21/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
cd /usr/local/mysql-proxy

#創建目錄
mkdir conf logs

配置環境變量:

vim /etc/profile
#增加一行
export PATH=$PATH:/usr/local/mysql-proxy/bin

#執行,生效
source /etc/profile

創建配置文件

vim conf/mysql-proxy.conf

#添加
[mysql-proxy]
user=root   //啓動mysql-proxy的用戶
admin-username=proxy  //這個可以不要,不要的話admin-lua-script也不要
admin-password=123457 //管理用戶密碼
proxy-address=0.0.0.0:3306  //mysql-proxy監聽的ip和端口
proxy-read-only-backend-addresses=192.168.247.160  //只讀(從)
proxy-backend-addresses=192.168.247.180  //可寫或者讀(主)
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua   //讀寫分離腳本
admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua  //管理腳本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log  //日誌
log-level=debug  //日誌級別
daemon=true  //後臺運行
keepalive=true   //長連接

更改一下權限,不讓其他人看:

chmod 660 conf/mysql-proxy.conf

編輯讀寫分離腳本

#注意所有的操作都是在/usr/local/mysql-proxy目錄下

vim share/doc/mysql-proxy/rw-splitting.lua

if not proxy.global.config.rwsplit then
        proxy.global.config.rwsplit = {
                min_idle_connections = 1,
                max_idle_connections = 1, //客戶端連接超多多少個連接就開始讀寫分離

                is_debug = false

啓動:

mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf 

#查看有沒有相關進程
ps aux |grep mysql-proxy

在master上創建proxy用戶和密碼:

grant all on *.* to 'proxy'@'192.168.247.190' identified by '123457';

測試:

#客戶機
mysql -uproxy -p123457 -h192.168.247.190
#做一些操作
create database wuxia;
use wuxia;
create table t1(`id` int(4),`name` char(10));
insert into user values(02,'ligen');

#在master和從上查看是否有剛剛的數據

#然後在從上,增加數據,檢驗可讀分離
#從上
insert into t1 values(3,'wuxia');

#查看,在客戶機上查看是否增加了數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章