(1)安裝lua
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz #目前最新版是5.3.5
tar zxf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux test
//如果出現(xiàn)錯(cuò)誤:
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lua.o lua.c
lua.c:80:31: 致命錯(cuò)誤:readline/readline.h:沒(méi)有那個(gè)文件或目錄
#include <readline/readline.h>
^
編譯中斷。
make[2]: *** [lua.o] 錯(cuò)誤 1
make[2]: 離開(kāi)目錄“/home/jason/tools/lua-5.3.3/src”
make[1]: *** [linux] 錯(cuò)誤 2
make[1]: 離開(kāi)目錄“/home/jason/tools/lua-5.3.3/src”
make: *** [linux] 錯(cuò)誤 2
#輸入命令
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
(2)安裝proxy
下載地址:https://downloads.mysql.com/archives/proxy/#downloads
#安裝
tar zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz #解壓文件
mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
配置proxy環(huán)境
export PATH=$PATH:/usr/local/mysql-proxy/bin/
echo "PATH=$PATH:/usr/local/mysql-proxy/bin" >> /etc/profile
設(shè)置配置文件
cd /usr/local/mysql-proxy
mkdir lua #創(chuàng)建腳本存放目錄
mkdir logs #創(chuàng)建日志目錄
cp share/doc/mysql-proxy/rw-splitting.lua ./lua #復(fù)制讀寫(xiě)分離配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua #復(fù)制管理腳本
vi /etc/mysql-proxy.cnf #創(chuàng)建配置文件
[mysql-proxy]
user=root #運(yùn)行mysql-proxy用戶
admin-username=root #主從mysql共有的用戶
admin-password=123456 #用戶的密碼
proxy-address=0.0.0.0:4040 #mysql-proxy運(yùn)行ip和端口,不加端口,默認(rèn)4040
proxy-read-only-backend-addresses=172.17.0.5 #指定后端從slave讀取數(shù)據(jù)
proxy-backend-addresses=172.17.0.3 #指定后端主master寫(xiě)入數(shù)據(jù)
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定讀寫(xiě)分離配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理腳本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置
log-level=info #定義log日志級(jí)別,由高到低分別有(error|warning|info|message|debug)
daemon=true #以守護(hù)進(jìn)程方式運(yùn)行
keepalive=true #mysql-proxy崩潰時(shí),嘗試重啟
[mysql-proxy]
user=root
admin-username=root
admin-password=123456
proxy-address=0.0.0.0:4040
proxy-read-only-backend-addresses=172.17.0.5
proxy-backend-addresses=172.17.0.3
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=info
daemon=true
keepalive=true
修改權(quán)限
chmod 660 /etc/mysql-proxy.cnf
設(shè)置讀寫(xiě)分離配置文件
#rw-splitting.lua
min_idle_connections = 1, #默認(rèn)超過(guò)4個(gè)連接數(shù)時(shí),才開(kāi)始讀寫(xiě)分離,改為1
max_idle_connections = 1, #默認(rèn)8,改為1
測(cè)試
mysql-proxy --help
各個(gè)參數(shù)的意義:
--help-all :獲取全部幫助信息;
--proxy-address=host:port :代理服務(wù)監(jiān)聽(tīng)的地址和端口;
--admin-address=host:port :管理模塊監(jiān)聽(tīng)的地址和端口;
--proxy-backend-addresses=host:port :后端mysql服務(wù)器的地址和端口;
--proxy-read-only-backend-addresses=host:port :后端只讀mysql服務(wù)器的地址和端口;
--proxy-lua-script=file_name :完成mysql代理功能的Lua腳本;
--daemon :以守護(hù)進(jìn)程模式啟動(dòng)mysql-proxy;
--keepalive :在mysql-proxy崩潰時(shí)嘗試重啟之;
--log-file=/path/to/log_file_name :日志文件名稱(chēng);
--log-level=level :日志級(jí)別;
--log-use-syslog :基于syslog記錄日志;
--plugins=plugin:在mysql-proxy啟動(dòng)時(shí)加載的插件;
--user=user_name :運(yùn)行mysql-proxy進(jìn)程的用戶;
--defaults-file=/path/to/conf_file_name : 默認(rèn)使用的配置文件路徑;其配置段使用[mysql-proxy]標(biāo)識(shí);
--proxy-skip-profiling : 禁用profile;
--pid-file=/path/to/pid_file_name :進(jìn)程文件名;
啟動(dòng)proxy
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf #開(kāi)啟服務(wù)
連接proxy
賬號(hào):root
密碼:123456
端口:4040