docker環(huán)境下搭建mysql主從

1.首先拉取docker鏡像利职,版本5.7.13的mysql

docker pull  mysql:5.7.13 

2.因為搭建的是mysql主從汛蝙,所以需要啟動兩個mysql:5.7.13 容器故俐,為了方便辨認胁澳,在啟動容器是分別給他重命名 Master:(mastermysql),Slave:(slavemysql)
Master(主)

docker run -d --name mastermysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD='root@123' mysql:5.7.13

Slave(從)

docker run -d --name slavemysql -p 3309:3306 -e MYSQL_ROOT_PASSWORD='root@123' mysql:5.7.13
  • Master對外映射的端口是3308,Slave對外映射的端口是3309

使用docker ps命令查看正在運行的容器:


mysql.png

3.配置master ( docker exec -it 容器id或容器名 /bin/bash 進入容器)欲低。

【1】docker exec -it d65cd7bf5efe /bin/bash 進入容器后 辕宏,再cd /etc/mysql切換到/etc/mysql目錄下,然后vi my.cnf對my.cnf進行編輯砾莱。此時會報出bash: vi: command not found瑞筐,需要我們在docker容器內(nèi)部自行安裝vim。這里我先用yum -y install vim,但會提示沒yum 這個命令腊瑟,這時換一種方式安裝VIM 聚假,使用apt-get install vim命令安裝vim
,這時也會報錯扫步,報錯如下:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package vim

執(zhí)行apt-get update魔策,然后再次執(zhí)行apt-get install vim即可成功安裝vim

【2】安裝完VIM 后,就可以對mysql的配置文件my.cnf 進行編輯

  • 對my.cnf 加入下列
## 同一局域網(wǎng)內(nèi)注意要唯一
server-id=1  
## 開啟二進制日志功能河胎,可以隨便却程弧(關(guān)鍵)
log-bin=mysql-bin
  • 修改完配置后需要在容器內(nèi)重啟mysql 服務(wù),重啟mysql服務(wù)會導(dǎo)致mysql容器退出,到時也需要重新啟動下mastermysql這個容器游岳。

service mysql restart

docker start mastermysql(容器id或容器名)

4.在Master數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)同步用戶政敢,授予用戶 slave REPLICATION SLAVE權(quán)限和REPLICATION CLIENT權(quán)限,用于在主從庫之間同步數(shù)據(jù)胚迫。

 create user 'slave'@'%' identified by'root@234';
 grant replication slave ,replication client on *.* to 'slave'@'%';
mysql1.png

5.對Slave進行配置

和配置master(主)一樣喷户,在Slave配置文件my.cnf中添加如下配置:

## 設(shè)置server_id,注意要唯一
server-id=2  
# 開啟二進制日志功能,以備Slave作為其它Slave的Master時使用
log-bin=mysql-slave-bin   
# relay_log配置中繼日志
relay_log=edu-mysql-relay-bin

配置完成后也需要重啟mysql服務(wù)和docker容器访锻,操作和配置master(主)一致.

6.進入mysql的后臺(master與slave都要)

master 進入mysql后,執(zhí)行如下
show master status;


image.png

File和Position字段的值后面將會用到褪尝,在后面的操作完成之前,需要保證Master庫不能做任何操作期犬,否則將會引起狀態(tài)變化河哑,F(xiàn)ile和Position字段的值變化

7.slave 進入mysql 后需進行以下操作

 change master to master_host='172.17.0.6', master_user='slave', master_password='root@234', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 154, master_connect_retry=30;

其中需要注意的是master_host 是指主容器獨立的iP,master的地址,,可以通過docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱|容器id查詢?nèi)萜鞯膇p


image.png

對slave執(zhí)行的命令說明下:
master_host :master的地址
master_port:Master的端口號龟虎,指的是容器的端口號
master_user:用于數(shù)據(jù)同步的用戶
master_password:用于同步的用戶的密碼
master_log_file:指定 Slave 從哪個日志文件開始復(fù)制數(shù)據(jù)璃谨,即上文中提到的 File 字段的值
master_log_pos:從哪個 Position 開始讀,即上文中提到的 Position 字段的值
master_connect_retry:如果連接失敗鲤妥,重試的時間間隔佳吞,單位是秒,默認是60秒

8.在Slave 中的mysql終端執(zhí)行show slave status \G;用于查看主從同步狀態(tài)


image.png

正常情況下棉安,SlaveIORunning 和 SlaveSQLRunning 都是No底扳,因為我們還沒有開啟主從復(fù)制過程。使用start slave開啟主從復(fù)制過程贡耽,然后再次查詢主從同步狀態(tài)show slave status \G;花盐。


image.png
  • SlaveIORunning 和 SlaveSQLRunning 都是Yes羡滑,說明主從復(fù)制已經(jīng)開啟。此時可以測試數(shù)據(jù)同步是否成功
    9.在master mysql終端創(chuàng)建一個新的test庫算芯,看是否同步成功

master:
image.png

slave:


image.png
  • 從庫有test 說明主從同步成公。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凳宙,一起剝皮案震驚了整個濱河市熙揍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氏涩,老刑警劉巖届囚,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異是尖,居然都是意外死亡意系,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門饺汹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛔添,“玉大人,你說我怎么就攤上這事兜辞∮疲” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵逸吵,是天一觀的道長凶硅。 經(jīng)常有香客問我,道長扫皱,這世上最難降的妖魔是什么足绅? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮韩脑,結(jié)果婚禮上氢妈,老公的妹妹穿的比我還像新娘。我一直安慰自己扰才,他們只是感情好允懂,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衩匣,像睡著了一般蕾总。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琅捏,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天生百,我揣著相機與錄音,去河邊找鬼柄延。 笑死蚀浆,一個胖子當著我的面吹牛缀程,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播市俊,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼杨凑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了摆昧?” 一聲冷哼從身側(cè)響起撩满,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绅你,沒想到半個月后伺帘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡忌锯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年伪嫁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偶垮。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡张咳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出针史,到底是詐尸還是另有隱情晶伦,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布啄枕,位于F島的核電站婚陪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏频祝。R本人自食惡果不足惜泌参,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望常空。 院中可真熱鬧沽一,春花似錦、人聲如沸漓糙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昆禽。三九已至蝗蛙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間醉鳖,已是汗流浹背捡硅。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盗棵,地道東北人壮韭。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓北发,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喷屋。 傳聞我的和親對象是個殘疾皇子琳拨,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355