mysql-proxy實(shí)現(xiàn)mysql 讀寫分離

通過 主從復(fù)制(Master-Slave)的方式來同步數(shù)據(jù),再通過讀寫分離(MySQL-Proxy)來提升數(shù)據(jù)庫的并發(fā)負(fù)載能力 朴爬。本文介紹mysql-proxy讀寫分離的實(shí)踐。
原文地址:代碼匯個(gè)人博客 http://www.codehui.net/info/65.html

我們先配置好mysql的主從復(fù)制橡淆,可以查看《mysql主從復(fù)制 簡單實(shí)踐》

mysql讀寫分離

測試的三臺(tái)服務(wù)器都是centos7.6

mysql-proxy:192.168.73.128
主服務(wù)器: 192.168.73.130
從服務(wù)器: 192.168.73.131

mysql-proxy配置

只需要配置mysql-proxy服務(wù)器就可以了

1召噩、下載 mysql-proxy

根據(jù)自己系統(tǒng)配置選擇適合的版本,下載地址:https://downloads.mysql.com/archives/proxy/

wget https://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
2逸爵、配置mysql-proxy具滴,創(chuàng)建主配置文件
tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
cd /usr/local/mysql-proxy
mkdir lua
cp share/doc/mysql-proxy/rw-splitting.lua ./lua #復(fù)制讀寫分離配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua #復(fù)制管理腳本
vi /etc/mysql-proxy.cnf   #創(chuàng)建配置文件

# 注意這在寫的時(shí)候把注釋取了 不然會(huì)報(bào)錯(cuò)的
[mysql-proxy]
user=root #運(yùn)行mysql-proxy用戶
admin-username=root #主從mysql共有的用戶
admin-password=123456 #用戶的密碼
proxy-address=192.168.73.128 #mysql-proxy運(yùn)行ip和端口,不加端口师倔,默認(rèn)4040
proxy-read-only-backend-addresses=192.168.73.131 #指定后端從slave讀取數(shù)據(jù)
proxy-backend-addresses=192.168.73.130 #指定后端主master寫入數(shù)據(jù)
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定讀寫分離配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理腳本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置
log-level=info #定義log日志級(jí)別构韵,由高到低分別有(error|warning|info|message|debug)
daemon=true    #以守護(hù)進(jìn)程方式運(yùn)行
keepalive=true #mysql-proxy崩潰時(shí),嘗試重啟

保存退出!
chmod 660 /etc/mysql-porxy.cnf
3疲恢、修改讀寫分離配置文件
vi /usr/local/mysql-proxy/lua/rw-splitting.lua

if not proxy.global.config.rwsplit then
        proxy.global.config.rwsplit = {
                min_idle_connections = 1, #默認(rèn)超過4個(gè)連接數(shù)時(shí)凶朗,才開始讀寫分離,改為1
                max_idle_connections = 1, #默認(rèn)8显拳,改為1

                is_debug = false
        }
end

4棚愤、啟動(dòng)mysql-proxy
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf

看下面報(bào)錯(cuò)了

[root@localhost www]# /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
2019-02-20 14:51:30: (critical) Key file contains key 'daemon' which has value that cannot be interpreted.
2019-02-20 14:51:30: (message) Initiating shutdown, requested from mysql-proxy-cli.c:367
2019-02-20 14:51:30: (message) shutting down normally, exit code is: 1

在mysql論壇找到了解決辦法,/etc/mysql-proxy.cnf可能有非ASCII字符,刪掉所有注釋,啟動(dòng)成功了杂数。:tw-1f602:

[mysql-proxy]
user=root
admin-username=root
admin-password=123456
proxy-address=192.168.73.128
proxy-read-only-backend-addresses=192.168.73.131
proxy-backend-addresses=192.168.73.130
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=info
daemon=true
keepalive=true

查看啟動(dòng)情況宛畦,關(guān)閉可以使用killall -9 mysql-proxy

[root@localhost www]# netstat -tupln | grep 4000
tcp        0      0 192.168.73.128:4000     0.0.0.0:*               LISTEN      8061/mysql-proxy
5、測試讀寫分離

使用客戶端連接mysql-proxy

mysql -u root -h 192.168.73.128 -P 4000 -p123456

我們?cè)?code>mysql-proxy中插入了兩條數(shù)據(jù)揍移,并且可以查看數(shù)據(jù)次和。

mysql> use codehui;
Database changed

mysql> create table proxy (id INT(11),name VARCHAR(255));
Query OK, 0 rows affected (0.06 sec)

mysql> insert into proxy values(001,'beijing');
Query OK, 1 row affected (0.02 sec)

mysql> insert into proxy values(002,'shanghai');
Query OK, 1 row affected (0.00 sec)

mysql> select * from proxy;
+------+----------+
| id   | name     |
+------+----------+
|    1 | beijing  |
|    2 | shanghai |
+------+----------+
2 rows in set (0.00 sec)

要怎么知道啟用了讀寫分離呢?我們進(jìn)入從服務(wù)器192.168.73.131那伐,修改id為2的數(shù)據(jù)name值為xian斯够。

mysql -u root -h 192.168.73.131 -p123456

mysql> use codehui;
Database changed

mysql> update proxy set name='xian' where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from proxy;
+------+---------+
| id   | name    |
+------+---------+
|    1 | beijing |
|    2 | xian    |
+------+---------+
2 rows in set (0.00 sec)

然后登陸mysql-proxy,查看到的數(shù)據(jù)是從服務(wù)器192.168.73.131的喧锦,說明讀寫分離成功。

mysql -u root -h 192.168.73.128 -P 4000 -p123456

mysql> use codehui;
Database changed

mysql> select * from proxy;
+------+---------+
| id   | name    |
+------+---------+
|    1 | beijing |
|    2 | xian    |
+------+---------+
2 rows in set (0.00 sec)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抓督,一起剝皮案震驚了整個(gè)濱河市燃少,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铃在,老刑警劉巖阵具,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異定铜,居然都是意外死亡阳液,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門揣炕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘皿,“玉大人,你說我怎么就攤上這事畸陡∮チ铮” “怎么了?”我有些...
    開封第一講書人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵丁恭,是天一觀的道長曹动。 經(jīng)常有香客問我,道長牲览,這世上最難降的妖魔是什么墓陈? 我笑而不...
    開封第一講書人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上贡必,老公的妹妹穿的比我還像新娘兔港。我一直安慰自己,他們只是感情好赊级,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開白布押框。 她就那樣靜靜地躺著,像睡著了一般理逊。 火紅的嫁衣襯著肌膚如雪橡伞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,729評(píng)論 1 289
  • 那天晋被,我揣著相機(jī)與錄音兑徘,去河邊找鬼。 笑死羡洛,一個(gè)胖子當(dāng)著我的面吹牛挂脑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播欲侮,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼崭闲,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了威蕉?” 一聲冷哼從身側(cè)響起刁俭,我...
    開封第一講書人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎韧涨,沒想到半個(gè)月后牍戚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虑粥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年如孝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娩贷。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡第晰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出育勺,到底是詐尸還是另有隱情但荤,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布涧至,位于F島的核電站腹躁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏南蓬。R本人自食惡果不足惜纺非,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一哑了、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烧颖,春花似錦弱左、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涂圆,卻和暖如春们镜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背润歉。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來泰國打工模狭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人踩衩。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓嚼鹉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驱富。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锚赤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容