標籤:oca 操作 varchar arch als zha creat add level
1、安裝mysql-proxy
實現讀寫分離是有lua指令碼實現的,現在mysql-proxy裡面已經整合,無需再安裝
下載:http://dev.mysql.com/downloads/mysql-proxy/
tar
zxvf mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.
tar
.gz
mv
mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit
/usr/local/mysql-proxy 2、配置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
#複製管理指令碼
vi
/etc/mysql-proxy
.cnf
#建立設定檔
[mysql-proxy]
user=root
#運行mysql-proxy使用者
admin-username=proxy
#主從mysql共有的使用者
admin-password=123.com
#使用者的密碼
proxy-address=192.168.0.204:4040
# 如果不寫連接埠號碼,預設連接埠號碼3306,與Mysql的連接埠號碼衝突,所以會報錯。*************************!!!!
proxy-
read
-only-backend-addresses=192.168.0.203
#指定後端從slave讀取資料
proxy-backend-addresses=192.168.0.202
#指定後端主master寫入資料
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
#定義log記錄層級,由高到低分別有(error|warning|info|message|debug)
daemon=
true
#以守護進程方式運行
keepalive=
true
#mysql-proxy崩潰時,嘗試重啟
儲存退出!
chmod 660 /etc/mysql-proxy.cnf 3、修改讀寫分離設定檔
vi
/usr/local/mysql-proxy/lua/rw-splitting
.lua
if
not proxy.global.config.rwsplit
then
proxy.global.config.rwsplit = {
min_idle_connections = 1,
#預設超過4個串連數時,才開始讀寫分離,改為1
max_idle_connections = 1,
#預設8,改為1
is_debug =
false
}
end 4、啟動mysql-proxy
/usr/local/mysql-proxy/bin/mysql-proxy
--defaults-
file
=
/etc/mysql-proxy
.cnf
netstat
-tupln |
grep
4040
#已經啟動
tcp 0 0 192.168.0.204:4040 0.0.0.0:* LISTEN 1264
/mysql-proxy
關閉mysql-proxy使用:killall -9 mysql-proxy 5、測試讀寫分離 1>.在主伺服器建立proxy使用者用於mysql-proxy使用,從伺服器也會同步這個操作
mysql> grant all on *.* to
‘proxy‘
@
‘192.168.0.204‘
identified by
‘123.com‘
; 2>關閉從伺服器上的slaveslave stop; 3>.使用用戶端串連mysql-proxymysql -u proxy -P 4040 -h 192.168.0.0 -p 4>下面的操作均使用mysql-proxy的帳號登入資料庫進行操作。
mysql> create table user (number INT(10),name VARCHAR(255));
mysql> insert into user
values(01,
‘zhangsan‘
);
mysql> insert into user values(02,
‘lisi‘
); 5>登入主從伺服器,查看:select * from user主要資料庫有資料,從資料庫沒有資料 6>在從庫上開啟slavestart slave過一會執行 select * from user 從庫的資料也會慢慢同步過來
參考文獻:http://lizhenliang.blog.51cto.com/7876557/1305083
參考文獻2:http://www.cnblogs.com/luckcs/articles/2543607.html
======================== 主從庫的資料有時候不一致,還有待研究 疑問,在測試讀寫分離的時候,執行slave stop時間久了,一直不slave start是否資料就很難同步了?slave stop一下會,過一小會,資料還是會同步到從庫的。
mysql讀寫分離