基于 Docker 搭建 MySQL 主從復(fù)制

?作者:秋田君

原文:開源中國(guó)

摘要: 本篇博文相對(duì)簡(jiǎn)單哀军,因?yàn)槭浅醮问褂肈ocker沉眶,MySQL的主從復(fù)制之前也在Centos環(huán)境下搭建過,但是也忘的也差不多了杉适,因此本次嘗試在Docker中搭建谎倔。

本篇博文相對(duì)簡(jiǎn)單,因?yàn)槭浅醮问褂肈ocker猿推,MySQL的主從復(fù)制之前也在Centos環(huán)境下搭建過片习,但是也忘的也差不多了,因此本次嘗試在Docker中搭建蹬叭。根據(jù)網(wǎng)上教程走還是踩了一些坑藕咏,不過所幸最終搭建成功,因此記錄下來秽五,避免以后踩了重復(fù)的坑孽查。

搭建環(huán)境

Centos 7.2 64位

MySQL 5.7.13

Docker 1.13.1

接下來,我們將會(huì)在一臺(tái)服務(wù)器上安裝docker筝蚕,并使用docker運(yùn)行三個(gè)MySQL容器卦碾,分別為一主兩從。

安裝docker

執(zhí)行命令

移除

?如果有提示起宽,一路y下去

安裝成功啟動(dòng)Docker后洲胖,查看版本

移除

?出現(xiàn)版本信息,則安裝成功

啟動(dòng)Docker

啟動(dòng)Docker并設(shè)置為開機(jī)自啟動(dòng)

移除

?安裝MySQL

使用Docker拉取MySQL鏡像

移除

?運(yùn)行主容器

移除

?--name 為容器指定名稱坯沪,這里是master

-p?將容器的指定端口映射到主機(jī)的指定端口绿映,這里是將容器的3306端口映射到主機(jī)的3306端口

-e?設(shè)置環(huán)境變量,這里是指定root賬號(hào)的密碼為root

-d?后臺(tái)運(yùn)行容器,并返回容器ID

mysql:5.7.13 指定運(yùn)行的mysql版本

檢驗(yàn)是否啟動(dòng)成功

docker ps -a 顯示所有的容器叉弦,包括未運(yùn)行的

移除

?更多精彩內(nèi)容請(qǐng)關(guān)注開源中國(guó)公眾號(hào)(oschina2013)

注意丐一,是UP狀態(tài),表示正在運(yùn)行中

開放3306端口

移除

?--permanent 永久開啟淹冰,避免下次開機(jī)需要再次手動(dòng)開啟端口

使用Navicat連接測(cè)試

移除

?MySQL主容器已經(jīng)啟動(dòng)成功

創(chuàng)建主容器的復(fù)制賬號(hào)

移除

?使用Navicat友好的圖像化界面執(zhí)行SQL

移除

?出現(xiàn)如下信息表示授權(quán)成功

移除

?修改MySQL配置環(huán)境

創(chuàng)建配置文件目錄

目錄結(jié)構(gòu)如下

/usr/local/mysql/master

/usr/local/mysql/slave1

/usr/local/mysql/slave2

拷貝一份MySQL配置文件

移除

?進(jìn)到master目錄下库车,已存在拷貝的my.cnf

移除

?修改my.cnf,在 [mysqld] 節(jié)點(diǎn)最后加上后保存

移除

?log-bin=mysql-bin 使用binary logging樱拴,mysql-bin是log文件名的前綴

server-id=1 唯一服務(wù)器ID柠衍,非0整數(shù),不能和其他服務(wù)器的server-id重復(fù)

將修改后的文件覆蓋Docker中MySQL中的配置文件

移除

?重啟 mysql 的docker , 讓配置生效

移除

?啟動(dòng)后晶乔,重新測(cè)試連接珍坊,連接成功表示主容器配置成功

運(yùn)行MySQL從容器

首先運(yùn)行從容器

移除

?與主容器相似,拷貝配置文件至slave1目錄修改后覆蓋回Docker中

移除

?別忘記正罢,重啟slave1容器阵漏,使配置生效

配置主從復(fù)制

使用Navicat連接slave1后新建查詢,執(zhí)行以下SQL

移除

?MASTER_HOST 填Navicat連接配置中的ip應(yīng)該就可以

MASTER_PORT 主容器的端口

MASTER_USER 同步賬號(hào)的用戶名

MASTER_PASSWORD 同步賬號(hào)的密碼

檢查是否配置成功

移除

移除

?Slave_IO_State 如果是Waiting for master to send event翻具,那么就成功一半了履怯,如果是Connecting to master,基本就是配置失敗了呛占,建議重新檢查下配置虑乖,具體失敗的原因可以查看日志追蹤

移除

?我遇到的是MASTER_USER和MASTER_PASSWORD是否手打輸錯(cuò)了,貼出錯(cuò)誤日志

2018-05-10T02:57:00.688887Z 11 [ERROR] Slave I/O for channel '': error connecting to master 'bakcup@ip:3306' - retry-time: 60? retries: 2, Error_code: 1045

2018-05-10T02:58:00.690476Z 11 [ERROR] Slave I/O for channel '': error connecting to master 'bakcup@ip:3306' - retry-time: 60? retries: 3, Error_code: 1045

注意看日志中的bakcup晾虑,解決方法如下

移除

?接著上文疹味,我們說成功一半,并沒有說成功了帜篇,那么另一半在于Slave_IO_Running與Slave_SQL_Running

如果都是Yes糙捺,那么恭喜你,可以測(cè)試主從復(fù)制的效果了笙隙,如果有一個(gè)不是Yes洪灯,一半是重啟從容器后,事務(wù)回滾引起的竟痰,那么給出解決方法如下

移除

?執(zhí)行后签钩,再次觀察三個(gè)關(guān)鍵字段應(yīng)該就都沒問題了

至此,一主一從已經(jīng)搭建完成坏快,再添加從實(shí)例的方式與上文一致铅檩,這里就不在贅述了。

測(cè)試主從復(fù)制

首先莽鸿,在主實(shí)例中創(chuàng)建一個(gè)測(cè)試數(shù)據(jù)庫(kù)

移除

?打開(刷新)從實(shí)例昧旨,可見test庫(kù)已存在

移除

?在test庫(kù)中創(chuàng)建一個(gè)表t_test拾给,添加一個(gè)id測(cè)試字段

向表中添加幾個(gè)數(shù)據(jù)

移除

?刷新從庫(kù),可見t_test表及其中1兔沃、2蒋得、3、4數(shù)據(jù)已存在

至此乒疏,一個(gè)具備主從復(fù)制的一主兩從的MySQL就已搭建完成额衙。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怕吴,隨后出現(xiàn)的幾起案子入偷,更是在濱河造成了極大的恐慌,老刑警劉巖械哟,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異殿雪,居然都是意外死亡暇咆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門丙曙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爸业,“玉大人,你說我怎么就攤上這事亏镰〕犊酰” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵索抓,是天一觀的道長(zhǎng)钧忽。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么缺菌? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任鹏倘,我火速辦了婚禮,結(jié)果婚禮上循狰,老公的妹妹穿的比我還像新娘寸潦。我一直安慰自己褥影,他們只是感情好池户,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凡怎,像睡著了一般校焦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上统倒,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天寨典,我揣著相機(jī)與錄音,去河邊找鬼房匆。 笑死耸成,一個(gè)胖子當(dāng)著我的面吹牛报亩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播井氢,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼弦追,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了花竞?” 一聲冷哼從身側(cè)響起劲件,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎约急,沒想到半個(gè)月后零远,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厌蔽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年牵辣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奴饮。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡服猪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拐云,到底是詐尸還是另有隱情,我是刑警寧澤近她,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布叉瘩,位于F島的核電站,受9級(jí)特大地震影響粘捎,放射性物質(zhì)發(fā)生泄漏薇缅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一攒磨、第九天 我趴在偏房一處隱蔽的房頂上張望泳桦。 院中可真熱鬧,春花似錦娩缰、人聲如沸灸撰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)浮毯。三九已至,卻和暖如春泰鸡,著一層夾襖步出監(jiān)牢的瞬間债蓝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工盛龄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饰迹,地道東北人芳誓。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像啊鸭,于是被迫代替她去往敵國(guó)和親锹淌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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