本篇內容介紹了“-PROXY的安裝與使用方法”的有關(guān)知識,在實(shí)際案例的操作過(guò)程中,不少人都會(huì )遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學(xué)有所成!
MySQL Proxy 安裝與使用
1. MYSQL 安裝
(略)
2. MYSQL PROXY 安裝
2.0 獲取系統信息
getconf LONG_BIT
cat /etc/redhat-release
2.1 下載
--二進(jìn)制版本 (請下載v0.7.0以上)
wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.1-linux-rhel4-x86-32bit.tar.gz
# 具體版本以SETP2.0所得信息而定
2.2 安裝
2.2.1 #必備軟件: LUA
cd /opt/install
wget http://www.lua.org/ftp/lua-5.1.2.tar.gz
tar zxvf lua-5.1.2.tar.gz
cd lua-5.1.2
make linux install
2.2.2 #二進(jìn)制版本安裝
tar zxvf mysql-proxy-0.6.1-linux-rhel4-x86-32bit.tar.gz
cp mysql-proxy-0.6.1-linux-rhel4-x86-32bit/sbin/mysql-proxy $MYSQL目錄/bin
mysql-proxy & //在后臺啟動(dòng),默認啟動(dòng)時(shí)4040和4041端口
mysql -P4040 // 現在這樣也可以連接數據了
3. MYSQL PROXY 使用
手冊:http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-cmdline.html
幫助: mysql-proxy --help-all
3.0 測試環(huán)境
10.2.224.236 RHEL4/32/MYSQL 5.0.51a -- 簡(jiǎn)稱(chēng)為S-A
10.2.224.237 RHEL4/32/MYSQL 5.0.51a -- 簡(jiǎn)稱(chēng)為S-B
10.5.232.210 RHEL4/32/MYSQL PROXY 0.6.1 -- 簡(jiǎn)稱(chēng)為PROXY
10.2.226.24 -- 簡(jiǎn)稱(chēng)CLIENT
3.1 測試讀寫(xiě)分離
要求: 寫(xiě)在S-A上, 讀在S-B上,
啟動(dòng)PROXY :
mysql-proxy --proxy-read-only-backend-addresses=10.2.224.237:3306
--proxy-backend-addresses=10.2.224.236:3306
--proxy-lua-script=/opt/install/mysql-proxy-0.6.1-linux-rhel4-x86-32bit/share/mysql-proxy/rw-splitting.lua &
CLENT連接:
mysql -u probe -P4040 -palibaba -h 10.5.232.210 eservice -e 'select count(*) from test';
mysql -u probe -P4040 -palibaba -h 10.5.232.210 eservice -e "insert into test values ('236')";
這時(shí),你在同一個(gè)SESSION中,不管你INSERT多少次, 你SELECT的結果都是一樣的.因為你插和查根本不是同一個(gè)庫.
這也就表明讀寫(xiě)分離了!
(注意這里的LUA文件,是在連接產(chǎn)生時(shí)才會(huì )執行.)
3.2 測試負載平衡
mysql-proxy --proxy-backend-addresses=10.2.224.237:3306
--proxy-backend-addresses=10.2.224.236:3306 &
(如果有,還可以寫(xiě)多個(gè))
在測試的時(shí)候,注意只有在五個(gè)SESSION以上,PROXY才會(huì )考慮平衡,在這里用了10個(gè)連接:
mysql -u probe -P4040 -palibaba -h 10.5.232.210 eservice
在S-A上:
mysql> show processlist ;
+----+-------+--------------------+----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+--------------------+----------+---------+------+-------+------------------+
| 56 | root | 127.0.0.1:57794 | eservice | Query | 0 | NULL | show processlist |
| 83 | probe | 10.5.232.210:33770 | eservice | Sleep | 42 | | NULL |
| 84 | probe | 10.5.232.210:33772 | eservice | Sleep | 35 | | NULL |
| 85 | probe | 10.5.232.210:33774 | eservice | Sleep | 29 | | NULL |
| 86 | probe | 10.5.232.210:33776 | eservice | Sleep | 23 | | NULL |
| 87 | probe | 10.5.232.210:33778 | eservice | Sleep | 17 | | NULL |
+----+-------+--------------------+----------+---------+------+-------+------------------+
在S-B上:.
mysql> show processlist ;
+---------+-------+--------------------+----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+-------+--------------------+----------+---------+------+-------+------------------+
| 5685701 | root | 127.0.0.1:58177 | eservice | Query | 0 | NULL | show processlist |
| 5685710 | probe | 10.5.232.210:33769 | eservice | Sleep | 50 | | NULL |
| 5685711 | probe | 10.5.232.210:33771 | eservice | Sleep | 42 | | NULL |
| 5685712 | probe | 10.5.232.210:33773 | eservice | Sleep | 37 | | NULL |
| 5685713 | probe | 10.5.232.210:33775 | eservice | Sleep | 31 | | NULL |
| 5685714 | probe | 10.5.232.210:33777 | eservice | Sleep | 25 | | NULL |
+---------+-------+--------------------+----------+---------+------+-------+------------------+
從這么看,倒像是負載平衡起作用了!
4. 失敗切換
當我們以多啟動(dòng)時(shí):
mysql-proxy --proxy-backend-addresses=10.2.224.237:3306
--proxy-backend-addresses=10.2.224.236:3306 &
只要一個(gè)節點(diǎn)(237)DOWN了. 那PROXY就連不上了!
(原來(lái)連著(zhù)236的SESSION不會(huì )斷,但新加的連接就報:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 )
這時(shí):
PROXY 會(huì )報: network-mysqld-proxy.c.3709: connect(10.2.224.237:3306) failed: Connection refused 并試著(zhù)重新連接!
V0.6.1 有這個(gè)BUG,V0.7.0 解決這個(gè)問(wèn)題
5. PROXY 管理
你可以用MYSQL CLIENT直接連到PROXY管理窗口進(jìn)行管理查詢(xún):(管理端口可以更改)
mysql -P4041 -h 10.5.232.210
(root@FuncTestDB:)> select * from proxy_connections;
+------+--------+-------+----------+
| id | type | state | db |
+------+--------+-------+----------+
| 0 | server | 0 | |
| 1 | proxy | 0 | |
| 2 | server | 10 | |
| 3 | proxy | 10 | eservice |
+------+--------+-------+----------+
4 rows in set (0.00 sec)
(root@FuncTestDB:)> select * from proxy_config;
+----------------------------+-------------------+
| option | value |
+----------------------------+-------------------+
| admin.address | :4041 |
| proxy.address | :4040 |
| proxy.lua_script | NULL |
| proxy.backend_addresses[0] | 10.2.224.237:3306 |
| proxy.backend_addresses[1] | 10.2.224.236:3306 |
| proxy.fix_bug_25371 | 0 |
| proxy.profiling | 1 |
+----------------------------+-------------------+
7 rows in set (0.00 sec)
不過(guò),據說(shuō)PROXY還不推薦被使用在生產(chǎn)環(huán)境,
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站