Atlas實現數據庫讀寫分離

參考:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md


安裝:rpm -i Atlas-2.2.1.el6.x86_64.rpm

cp /usr/local/mysql-proxy/conf/test.cnf{,.bak} && vim /usr/local/mysql-proxy/conf/test.cnf

[mysql-proxy]

admin-username = user

admin-password = pwd

proxy-backend-addresses = 192.168.126.129:3306

proxy-read-only-backend-addresses = 192.168.126.130:3306@1,192.168.126.131:3306@1

pwds = write:/iZxz+0GRoA=

daemon = true

keepalive = true

event-threads = 90

log-level = message

log-path = /usr/local/mysql-proxy/log

sql-log = on

sql-log-slow = 10

proxy-address = 0.0.0.0:1234

admin-address = 0.0.0.0:2345

charset = utf8


啓動: mysql-proxyd test start

1234 爲代理工作端口

2345爲管理端口

報錯:/usr/local/mysql-proxy/bin/mysql-proxy: error while loading shared libraries: libcrypto.so.6: cannot open shared object file: No such file or directory

解決:ln -s /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.6

報錯:/usr/local/mysql-proxy/bin/mysql-proxy: error while loading shared libraries: liblemon_parser.so: cannot open shared object file: No such file or directory

error: failed to start MySQL-Proxy of test

解決:echo "/usr/local/lib" >> /etc/ld.so.conf &&  ldconfig

##cp /usr/local/mysql-proxy/conf/test.cnf{,.bak}   複製/usr/local/mysql-proxy/conf/test.cnf重命名爲test.cnf.bak


test.cnf部分解釋

[mysql-proxy]


#帶#號的爲非必需的配置項目


#管理接口的用戶名,自己定義

admin-username = user


#管理接口的密碼,自己定義

admin-password = pwd


#Atlas後端連接的MySQL主庫的IP和端口,可設置多項,用逗號分隔

proxy-backend-addresses = 192.168.126.129:3306


#Atlas後端連接的MySQL從庫的IP和端口,@後面的數字代表權重,用來作負載均衡,若省略則默認爲1,可設置多項,用逗號分隔

proxy-read-only-backend-addresses = 192.168.126.130:3306@1,192.168.126.131:3306@1

#proxy-read-only-backend-addresses = 192.168.126.131:3306@1


#用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程序encrypt加密,命令後面直接跟密碼會進行加密,下行的user1和user2爲示例,將其替換爲你的MySQL的用戶名和加密密碼!

#pwds = user1:+jKsgB3YAG8=, user2:GS+tr4TPgqc=

pwds = write:/iZxz+0GRoA=


#設置Atlas的運行方式,設爲true時爲守護進程方式,設爲false時爲前臺方式,一般開發調試時設爲false,線上運行時設爲true,true後面不能有空格。

daemon = true


#設置Atlas的運行方式,設爲true時Atlas會啓動兩個進程,一個爲monitor,一個爲worker,monitor在worker意外退出後會自動將其重啓,設爲false時只有worker,沒有monitor,一般開發調試時設爲false,線上運行時設爲true,true後面不能有空格。

keepalive = true


#工作線程數,對Atlas的性能有很大影響,可根據情況適當設置

event-threads = 90


#日誌級別,分爲message、warning、critical、error、debug五個級別

log-level = message


#日誌存放的路徑

log-path = /usr/local/mysql-proxy/log


#SQL日誌的開關,可設置爲OFF、ON、REALTIME,OFF代表不記錄SQL日誌,ON代表記錄SQL日誌,REALTIME代表記錄SQL日誌且實時寫入磁盤,默認爲OFF

sql-log = on


#慢日誌輸出設置。當設置了該參數時,則日誌只輸出執行時間超過sql-log-slow(單位:ms)的日誌記錄。不設置該參數則輸出全部日誌。

sql-log-slow = 10


#實例名稱,用於同一臺機器上多個Atlas實例間的區分

#instance = test


#Atlas監聽的工作接口IP和端口

proxy-address = 0.0.0.0:1234


#Atlas監聽的管理接口IP和端口

admin-address = 0.0.0.0:2345


#分表設置,此例中person爲庫名,mt爲表名,id爲分表字段,3爲子表數量,可設置多項,以逗號分隔,若不分表則不需要設置該項

#tables = person.mt.id.3


#默認字符集,設置該項後客戶端不再需要執行SET NAMES語句

charset = utf8


#允許連接Atlas的客戶端的IP,可以是精確IP,也可以是IP段,以逗號分隔,若不設置該項則允許所有IP連接,否則只允許列表中的IP連接

#client-ips = 127.0.0.1, 192.168.1


#Atlas前面掛接的LVS的物理網卡的IP(注意不是虛IP),若有LVS且設置了client-ips則此項必須設置,否則可以不設置

#lvs-ips = 192.168.1.1




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章