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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL Proxy應用入門(1)--安裝MySQL ProxyMySql
- MySQL Proxy應用入門(2)--MySQL Proxy配置選項MySql
- MySQL Proxy的用途MySql
- mysql proxy安裝MySql
- MYSQL PROXY搭建手冊MySql
- mysql proxy 安裝部署MySql
- 【Mysql】mysql-proxy讀寫分離MySql
- Ubuntu安裝mysql-proxyUbuntuMySql
- windows下安裝mysql-proxyWindowsMySql
- 【Mysql】One-proxy簡單搭建MySql
- CentOS 5.8 Mysql-proxy 0.8.3 安裝CentOSMySql
- MYSQL-PROXY的安裝與使用MySql
- Mysql讀寫分離方案-MySQL Proxy環境部署記錄MySql
- mysql-proxy+keepalived對mysql做讀寫分離MySql
- mysql_proxy工作原理和配置引數MySql
- mysql-proxy實現讀寫分離MySql
- mysql-proxy does not work with server/client authentication pluginsMySqlServerclientPlugin
- MySQL Proxy 實現 MySQL 讀寫分離提高併發負載MySql負載
- MysqL讀寫分離的實現-Mysql proxy中介軟體的使用MySql
- MySQL使用Amoeba作為Proxy時的注意事項MySql
- 淺析Lua指令碼:MySQL Proxy工作機制指令碼MySql
- Proxy
- 在 Pisa-Proxy 中,如何利用 Rust 實現 MySQL 代理RustMySql
- mysql proxy 安裝及配置實現讀寫分離MySql
- docker – nginx – proxy_pass + proxy_redirectDockerNginx
- nginx proxy_pass 和 proxy_redirectNginx
- Proxy模式模式
- proxy 收集
- 代理模式(Proxy)模式
- JavaScript 之 ProxyJavaScript
- 配置proxy代理
- jQuery.proxy()jQuery
- http proxy原理HTTP
- LAMP(Linux+Apache+MySQL+PHP)(四)+Discuz+Redis+Mysql-proxy讀寫分離(centos7)LAMPLinuxApacheMySqlPHPRedisCentOS
- MySQL叢集架構:MHA+MySQL-PROXY+LVS實現MySQL叢集架構高可用/高效能MySql架構
- ShardingSphere-proxy-5.0.0建立mysql讀寫分離的連線(六)MySql
- RHEL5u3環境下編譯安裝MySQL Proxy 0.8.1編譯MySql
- 代理(Proxy)的解析