MySQL Proxy
MySQL Proxy下載地址:
http://dev.mysql.com/downloads/mysql-proxy/=
作為現在的版本,MySQL並不建議在生產環境使用。
MySQL Proxy可以代理MySQL的請求,實現讀寫分離。
但是這個功能,我測試並未通過,也許是操作的問題.
下面是測試的過程。
Proxy
192.168.1.70:4040
Master
192.168.1.70:3306
Slave
192.168.1.80:3306
my.cnf關於代理的配置
[mysql-proxy]
proxy-backend-addresses=192.168.1.70:3306
proxy-read-only-backend-addresses=192.168.1.80:3306
proxy-lua-script=/root/mysql-proxy-0.8.4-linux-glibc2.3-x86-32bit/share/doc/mysql-proxy/rw-splitting.lua
啟動MySQL Proxy
在Master和Slave上建立一個代理的帳號,用於測試。
使用測試帳號,登入代理伺服器
傳送測試SQL
檢視Proxy的日誌
奇怪的是,Proxy居然把插入的SQL傳送到了Slave
我猜測的原因是這樣的:
如果事務第一個SQL是查詢,則整個事務傳送給Slave處理;如果事務第一個SQL是Delete、Update或者Insert,則整個事務都傳送給Master處理。
MySQL Proxy貌似不太穩定,還時常掉線。
官方文件不建議生產系統使用,還是很有道理的。
http://dev.mysql.com/downloads/mysql-proxy/=
作為現在的版本,MySQL並不建議在生產環境使用。
MySQL Proxy可以代理MySQL的請求,實現讀寫分離。
但是這個功能,我測試並未通過,也許是操作的問題.
下面是測試的過程。
Proxy
192.168.1.70:4040
Master
192.168.1.70:3306
Slave
192.168.1.80:3306
my.cnf關於代理的配置
[mysql-proxy]
proxy-backend-addresses=192.168.1.70:3306
proxy-read-only-backend-addresses=192.168.1.80:3306
proxy-lua-script=/root/mysql-proxy-0.8.4-linux-glibc2.3-x86-32bit/share/doc/mysql-proxy/rw-splitting.lua
啟動MySQL Proxy
在Master和Slave上建立一個代理的帳號,用於測試。
使用測試帳號,登入代理伺服器
傳送測試SQL
檢視Proxy的日誌
- [read_query] 192.168.1.50:25347
- current backend = 0
- client default db = edmond
- client username = proxy
- query = select * from test
- sending to backend : 192.168.1.80:3306
- is_slave : true
- server default db: edmond
- server username : proxy
- in_trans : false
- in_calc_found : false
- COM_QUERY : true
- (read_query_result) staying on the same backend
- in_trans : true
- in_calc_found : false
- have_insert_id : nil
- [read_query] 192.168.1.50:25347
- current backend = 2
- client default db = edmond
- client username = proxy
- query = insert into test values(1,1)
- sending to backend : 192.168.1.80:3306
- is_slave : true
- server default db: edmond
- server username : proxy
- in_trans : true
- in_calc_found : false
- COM_QUERY : true
- (read_query_result) staying on the same backend
- in_trans : true
- in_calc_found : false
- have_insert_id : false
- [read_query] 192.168.1.50:25347
- current backend = 2
- client default db = edmond
- client username = proxy
- query = commit
- sending to backend : 192.168.1.80:3306
- is_slave : true
- server default db: edmond
- server username : proxy
- in_trans : true
- in_calc_found : false
- COM_QUERY : true
我猜測的原因是這樣的:
如果事務第一個SQL是查詢,則整個事務傳送給Slave處理;如果事務第一個SQL是Delete、Update或者Insert,則整個事務都傳送給Master處理。
MySQL Proxy貌似不太穩定,還時常掉線。
官方文件不建議生產系統使用,還是很有道理的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1086293/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ubuntu安裝mysql-proxyUbuntuMySql
- 在 Pisa-Proxy 中,如何利用 Rust 實現 MySQL 代理RustMySql
- Proxy
- docker – nginx – proxy_pass + proxy_redirectDockerNginx
- MySQL叢集架構:MHA+MySQL-PROXY+LVS實現MySQL叢集架構高可用/高效能MySql架構
- Proxy invocationHandler
- Proxy模式模式
- proxy 收集
- LAMP(Linux+Apache+MySQL+PHP)(四)+Discuz+Redis+Mysql-proxy讀寫分離(centos7)LAMPLinuxApacheMySqlPHPRedisCentOS
- ShardingSphere-proxy-5.0.0建立mysql讀寫分離的連線(六)MySql
- Proxy 攔截
- Proxy介紹
- 代理模式(Proxy)模式
- 2.1.2.3 Proxy PDBs
- 初識Proxy
- JavaScript 之 ProxyJavaScript
- 代理(Proxy)的解析
- Cglib proxy探祕CGLib
- 代理模式(Proxy Pattern)模式
- Proxy使用詳解
- Proxy.revocable() 方法
- 安卓 no_proxy安卓
- zabbix分散式proxy分散式
- Proxy例項set()
- What are the benefits of using an proxy?
- Proxy handler.has() 方法
- Proxy handler.get() 方法
- kube-proxy的功能
- Proxy handler.deleteProperty() 方法delete
- Proxy handler.getOwnPropertyDescriptor() 方法
- Proxy handler.apply() 方法APP
- Proxy handler.setPrototypeOf() 方法
- Proxy handler.defineProperty() 方法
- Proxy handler.getPrototypeOf() 方法
- wget使用proxy的配置wget
- 【譯】Proxy及其優勢
- Ubuntu apt-get proxyUbuntuapt-get
- Proxy handler.set() 方法
- Proxy handler.ownKeys() 方法