在docker下搭建MySQL MHA集群

環(huán)境

  • Docker+Cnetos7+Mysql8.0

用Docker拉取centos鏡像并創(chuàng)建容器

docker search centos
docker pull docker.io/centos
docker run -idt --name centos -v /home/dk/tmp:/mnt  --privileged=true   docker.io/centos
=============此處-v是掛載一個(gè)臨時(shí)目錄, 方便宿主機(jī)與Host共享文件================

初始設(shè)置

  • 進(jìn)入交互模式
    docker exec -it centos bash
    vi yum_install.sh
#!/bin/bash
package=$(yum provides $1 |grep -B1 Repo |head -1|awk '{print $1}')
yum -y install $package

chmod 700 yum_install.sh
yum_install.sh vi
yum_install.sh ifconfig
yum_install.sh ping
yum_install.sh service
yum -y install  libaio
yum -y install numactl 
##官網(wǎng)沒提到需要這個(gè),但是后續(xù)會(huì)報(bào)錯(cuò), 所以提前裝好
yum -y install openssl 
##同上
yum -y install keeepalived 
##備用,非必須
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local/src
cp /mnt/mysql*.gz ./
tar zxvf mysql*.gz
rm -rf *.gz
cd .. 
ln -s ./src/mysql* mysql
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql
##此處記住初始化密碼,否則后面需要手動(dòng)去改 ##
bin/mysql_ssl_rsa_setup
#bin/mysqld_safe --user=mysql &  ##可選我是用下面步驟##
cp /usr/local/mysql/support-files/mysqld_safe /etc/init.d/mysqld
service mysqld start
####此處還可以設(shè)為開機(jī)啟動(dòng)

''' 將/usr/local/mysql/bin 加入到.bash_profile里面

  • 安裝MHA ,其中manager只需要一臺(tái)slave安裝就可以,我這里全部都安裝了, Node是所有節(jié)點(diǎn)都必須裝的,安裝過程中會(huì)依賴相關(guān)perl模塊,配置EPEL yum倉(cāng)庫(kù)后安裝比較方便
    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    yum makecache
    yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN
    cd /mnt
    ##因?yàn)槲姨崆耙呀?jīng)下載好了這兩個(gè)rpm安裝包, 也可以下載源碼編譯安裝

mha manger 和 node下載地址:
https://github.com/yoshinorim/mha4mysql-manager/releases
https://github.com/yoshinorim/mha4mysql-node/releases
rpm -ivh *.rpm

  • 驗(yàn)證是否生成相關(guān)MHA管理腳本
    ls /bin |grep -E 'master|logs'


    image.png
  • 至此,所有初始設(shè)置完成. 返回宿主機(jī),將之前更改提交為一個(gè)新的鏡像,后續(xù)以這個(gè)鏡像建立容器配置mysql主從復(fù)制及MHA

    docker stop centos
    docker commit centos mysql_mha:base
    

配置主從復(fù)制

  • 創(chuàng)建復(fù)制及監(jiān)控用戶
mysql>create user 'repl'@'172.172.0.%' identified by '123456';
mysql> grant replication slave on *.* to 'repl'@'172.172.0.%';
mysql> create user 'root'@'172.172.0.%' identified by '123456';
mysql> grant all privileges on *.* to 'root'@'172.172.0.%';
  • 配置文件
server-id=1
##在slave 上分別設(shè)置為2和3
log-bin=mysql-bin
gtid_mode = on
#開啟gtid牛曹,必須主從全開
enforce_gtid_consistency = 1
log_slave_updates = 1
  • 開啟復(fù)制
change master to master_host='172.172.0.10',master_user='repl',master_password='123456',master_auto_position=1;
###,master_log_file='mysql-bin.000012',master_log_pos=979;
set global read_only=1;
start slave

配置MHA

  • 配置ssh
[root@135361cd5fad ~]# /sbin/sshd&
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key 
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key
/sbin/sshd&

ssh-keygen -t rsa
cat id_rsa.pub >>authorized_keys
scp 172.172.0.30:/root/.ssh/id_rsa.pub /tmp
cat /tmp/id_rsa.pub >>authorized_keys
scp 172.172.0.20:/root/.ssh/id_rsa.pub /tmp
cat /tmp/id_rsa.pub >>authorized_keys
scp authorized_keys 172.172.0.20:/root/.ssh
scp authorized_keys 172.172.0.30:/root/.ssh
  • 編輯manager配置文件
vi /etc/app1.cnf
[server default]
#mysql user and password
user=root
password=123456
ssh_user=root
# working directory on the manager
manager_workdir=/var/log/masterha/app1
# working directory on MySQL servers
remote_workdir=/var/log/masterha/app1
[server1]
hostname=172.172.0.30
[server2]
hostname=172.172.0.20
[server3]
hostname=172.172.0.10
  • 檢查ssh 和replication配置情況
 masterha_check_repl --conf=/etc/app1.cnf
 masterha_check_ssh --conf=/etc/app1.cnf
 masterha_check_status --conf=/etc/app1.cnf
  • 開啟manager(后臺(tái))
 nohup masterha_manager --conf=/etc/app1.cnf < /dev/null > /var/log/masterha/app1/app1.log 2>&1 &
 ## 或者masterha_manager(單個(gè)集群)  masterha_manager --conf=/etc/app1.cnf(多個(gè)MHA集群共用一個(gè)maneger則要指定配置文件)

這樣就可以實(shí)現(xiàn)發(fā)生故障的時(shí)候自動(dòng)啟用另外一個(gè)slave為master 了, 后續(xù)在討論IP切換.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末躲履,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子史侣,更是在濱河造成了極大的恐慌税朴,老刑警劉巖颤殴,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞳脓,死亡現(xiàn)場(chǎng)離奇詭異埋涧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門宋距,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事悯辙〉鼍酰” “怎么了批幌?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵信姓,是天一觀的道長(zhǎng)珊蟀。 經(jīng)常有香客問我昵宇,道長(zhǎng)杭煎,這世上最難降的妖魔是什么也切? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮沼死,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好兜看,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著精绎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搁吓。 梳的紋絲不亂的頭發(fā)上滑频,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音董饰,去河邊找鬼蒿褂。 笑死圆米,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的啄栓。 我是一名探鬼主播娄帖,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼昙楚!你這毒婦竟也來了近速?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤堪旧,失蹤者是張志新(化名)和其女友劉穎削葱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淳梦,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡析砸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谭跨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片干厚。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖螃宙,靈堂內(nèi)的尸體忽然破棺而出蛮瞄,到底是詐尸還是另有隱情,我是刑警寧澤谆扎,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布挂捅,位于F島的核電站,受9級(jí)特大地震影響堂湖,放射性物質(zhì)發(fā)生泄漏闲先。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一无蜂、第九天 我趴在偏房一處隱蔽的房頂上張望伺糠。 院中可真熱鬧,春花似錦斥季、人聲如沸训桶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舵揭。三九已至,卻和暖如春躁锡,著一層夾襖步出監(jiān)牢的瞬間午绳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工映之, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拦焚,地道東北人蜡坊。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像耕漱,于是被迫代替她去往敵國(guó)和親算色。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 《婚紗》 母親很是美麗螟够,是一位婚紗的設(shè)計(jì)師。影片的開頭峡钓,母親沉醉地作設(shè)計(jì)圖妓笙,筆尖和白紙摩擦的聲音很是悅耳。女兒因?yàn)?..
    熒光翩躚閱讀 629評(píng)論 0 1
  • 01 之前總會(huì)聽到這樣一句話能岩,既然改變不了環(huán)境寞宫,那就改變自己。 可是近年來由于《何以笙簫默》的熱播拉鹃,大家又開始講“...
    慕容赫月閱讀 586評(píng)論 0 0
  • 談到風(fēng)水膏燕,不少人嗤之以鼻钥屈,認(rèn)為現(xiàn)在是科學(xué)時(shí)代,相信風(fēng)水的人都是愚夫愚婦坝辫。這十足顯示現(xiàn)代知識(shí)分子內(nèi)外的矛盾篷就,在表面上...
    北石橋閱讀 307評(píng)論 0 0
  • 唯有源頭活水來閱讀 152評(píng)論 0 0