一步一個坑:搭建Mysql MHA高可用集群+各種報錯解決

  • A+
所屬分類:MySQL

mha下載地址,需要翻墻

管理軟件

mha4mysql-manager-0.52-0.noarch.rpm

節點軟件

mha4mysql-node-0.52-0.noarch.rpm

一、準備工作

db1-3需要先安裝好Mysql,不會裝的不用看下去了

 

三臺機器都添加hosts表

 

實現4臺機器間免密碼登陸

在db1上執行shell

 

在db2上執行shell

在db3上執行shell

在db4上執行shell

在monitor上執行shell

建立Mysql直接主從同步

特別注意:每臺DB的server id必須唯一

在DB1 上面建立同步賬戶

在DB2 上面建立同步賬戶,因為是備用master

打開防火墻

在db2上做主從,開防火墻

在db3上做主從,開防火墻

基礎環境搭建好了

二、安裝配置MHA

在monitir上安裝

在db1-4上安裝

在所有DB上面授權MHA管理賬號

在monitor上面

先新建一個工作目錄

編輯配置文件

驗證SSH互認是否成功

[[email protected] ~]# masterha_check_ssh --conf=/etc/masterha_default.cnf

報錯:這個錯就是[email protected](192.168.30.212) to [email protected](192.168.30.214)之間互認還沒完成,添加ssh認證即可

再來

通過檢查

下一步

檢查mysql主從復制

報錯:

那是不是主從檢查沒通過呢,其實不是得,這是個坑,關鍵報錯在這句

百度一下結果是這樣的

http://ronaldbradford.com/blog/mysql-mha-and-perl-pathing-2013-08-26/

解決辦法是在5臺機器上面做軟連接,把這個32位的依賴鏈接到64位的支持庫里面去

解決完之后,再執行檢查,又報錯

這次報錯提示找不到mysqlbinlog命令

我的mysql是編譯安裝的,添加了mysql bin目錄的環境變量的,但是它竟然提示找不到這個命令,可能是沒有讀取/etc/profile文件吧,那我們就再做軟連接到系統目錄好了

解決:在所有db執行

再來檢查,又錯,再看

這次報錯提示

那好吧,跟上面一樣,軟連接

問題解決

再來檢查

這次終于正常通過了

啟動MHA管理程序

一切正常

觀察日志

看到目前啟動正常 db2是master(不是說好的master是db1么?好吧,我之前做完切過一次了,所以master飄到db2了,大家湊合著看哈) db1 db3 db3是從機

到目前為止 MHA就搭起來了

三、做故障測試,把db2關掉,看下會不會主從自動切換到db1

關掉db2 mysql,我們來tail monitor日志

在刷了一大堆日志后,出現了這個匯總報告,主從切換成功

我們去db3 db4上面看下是不是真的切換成功了

再去看看db1,主從已經停止了(廢話,都成master了,主從肯定停了)

至此,mha測試完成,搭建MHA上面的坑,問題還是挺多的,要多看日志多看報錯,才能找出問題的所在,當然,一篇靠譜的教程還是要有的

感謝qq6246436投稿!

weinxin
微信公眾號
掃一掃關注運維生存時間公眾號,獲取最新技術文章~

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前評論:3   其中:訪客  3   博主  0

    • 魏延 0

      我想問下,生產環境中mysql的高可用方案也是用的這種嗎, 主從切換麻煩嗎?

      • 匿名 9

        遇到和作者不一樣的坑,真是填不平

        • chgjdwsh 0

          這文章早點出來就好了,我上個月剛把所有坑填平。