爲了玩下mysql-proxy實現mysql讀寫分離:
準備了幾臺服務器:
服務器A:ubuntu 192.168.1.4 (mysql 5.5 master)
服務器B:ubuntu 192.168.1.2 (mysql 5.5 slave)
服務器C:windows 7 192.168.1.3 (mysql 5.5 slave)
目標,將這些mysql服務器配置成讀寫分離,其中A用來寫,BC用來讀.
mysql-proxy能很好的實現讀寫分離,但是爲了數據同步,必須將讀和寫的mysql配置成master-slave結構,當然寫的作爲master,讀的都作爲slave,至於如何配置master-slave可以看我轉載的文章。
首先在ubuntu上可以通過apt-get,安裝mysql-proxy,命令:apt-get install mysql-proxy(這裏我將A作爲mysql-Proxy主機)
另外需要注意一點的是,所有mysql的用戶名密碼最好有個通用的賬號,這些賬號供proxy來訪問,這裏我採用root,密碼都是123
而後修改默認連接,進行快速測試,不修改的話要等達到連接數時纔讀寫分離
vim /usr/share/mysql-proxy/rw-splitting.lua
proxy.global.config.rwsplit = {
min_idle_connections = 1, #默認是4
max_idle_connections = 1, #默認是8
is_debug = false
}
而後在192.168.1.4上執行:
mysql-proxy --proxy-read-only-backend-addresses=192.168.1.2:3306 --proxy-read-only-backend-addresses=192.168.1.3:3306 --proxy-backend-addresses=192.168.1.4:3306 --admin-lua-script=/usr/share/mysql-proxy/admin.lua --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua --admin-username=root --admin-password=123&
這樣mysql-proxy就啓動起來了
用 mysql -uroot -p123 -h 192.168.1.4 -P 4040
這樣就可以進行mysql通用操作了,
爲了驗證是否配置成功,可以在slave上執行stop slave;
這樣,你用proxy登錄後會發現,插入數據只會在配置了寫數據庫的mysql,slave上則沒有新增數據;