MySQL MHA配置常見問題

來源:互聯網
上載者:User

標籤:

MHA在MySQL資料庫中被廣泛使用,它小巧易用,功能強大,實現了基於MySQL replication架構的自手動主從容錯移轉,從庫重新導向到主庫並自動同步。儘管如此,在部署配置的過程中,由於疏忽總難以避免這樣或那樣的錯誤。本文是對MHA配置中常見問題的一個匯總,供大家參考。http://hovertree.com/menu/mysql/

 

1、非root使用者等效性環境等效性配置
  a、添加所有節點(含管理節點)主機名稱及IP到host檔案,所有節點操作
  b、產生基於非root使用者(如使用mysql賬戶)的對稱金鑰,使用ssh-keygen
  c、複製公開金鑰到其他各節點(含管理節點),如下,且使用了非預設ssh 連接埠
    ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 50011 [email protected]" 
  d、驗證等效性(首次需要輸入密碼)
    ssh -p 50011 vdbsrv1 date;ssh -p 50011 vdbsrv2 date;ssh -p 50011 vdbsrv3 date;ssh -p 55555 vdbsrv4 date

 

2、MHA管理節點目錄許可權問題
  ###如果在管理節點使用了非root使用者進行mha管理,則需要相關許可權,否則報錯
  ###如下我們使用mysql使用者管理mha,則在root賬戶先建立相關目錄,在賦權給mysql
  # mkdir -p /var/log/masterha/app1
  # chown -R mysql:mysql /var/log/masterha
  # su - mysql
  $ masterha_check_repl --conf=/etc/app1.cnf   ###使用mysql使用者校正複製關係

 

3、需要添加用於登陸到mysql伺服器賬戶
  ###需要STOP SLAVE, CHANGE MASTER, RESET SLAVE等相關許可權,該賬戶要添加到mha設定檔中,主從切換時用到
  ###在mysql資料庫各節點執行,如下由於跨網段,所以分配了跨網段賬戶,否則,單條賦權即可
  ### Author : Leshami
  ### Blog   : http://blog.csdn.net/leshami
  mysql> grant all privileges on *.* to ‘mha‘@‘172.16.16.%‘ identified by ‘***‘;
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> grant all privileges on *.* to ‘mha‘@‘192.168.1.%‘ identified by ‘***‘;
  Query OK, 0 rows affected (0.00 sec)

 

4、需要添加用於建立複製關係的賬戶
  ###在mysql資料庫各節點執行,如下由於跨網段,所以分配了跨網段賬戶,否則,單條賦權即可
  mysql> grant replication slave on *.* to ‘repl‘@‘172.16.16.%‘ identified by ‘***‘;
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> grant replication slave on *.* to ‘repl‘@‘192.168.1.%‘ identified by ‘***‘;
  Query OK, 0 rows affected (0.00 sec)

 

5、從庫的各用戶端應開啟binlog,即log_bin=on
  ###未開啟則收到如下提示:
  Mon Apr 13 20:02:15 2015 - [warning]  log-bin is not set on slave SZ-DB-SLAVE01(192.168.81.3:3306). 
  This host cannot be a master.

 

6、各主從庫應該使用相同的複製過濾規則
  ###否則收到如下的錯誤提示:
  Mon Apr 13 20:02:15 2015 - [error][/usr/lib/perl5/site_perl/5.8.8/MHA/ServerManager.pm, ln546] Replication 
      filtering check failed on dbsrv3(192.168.1.3:3306)! All slaves must have same replication filtering rules.
      Check SHOW SLAVE STATUS output and set my.cnf correctly.
  Mon Apr 13 20:02:15 2015 - [warning] Bad Binlog/Replication filtering rules:

 

7、各從庫應設定relay_log_purge=0
  ###否則收到以下警示資訊 ##mysql -e ‘set global relay_log_purge=0‘ 動態修改該參數,因為隨時slave會提升為master。補充@150420
  Mon Apr 13 20:02:15 2015 - [warning]  relay_log_purge=0 is not set on slave vdbsrv2(172.16.16.12:3306).
  

8、各從庫設定read_only=1
  ###否則收到以下警示資訊 ## mysql -e ‘set global read_only=1‘ 動態修改該參數,因為隨時slave會提升為master。補充@150420
  Mon Apr 13 20:19:54 2015 - [info]  read_only=1 is not set on slave vdbsrv3(172.16.16.13:3306).

 

9、mysqlbinlog version過低
  ###大多數情況下我們使用yum方式安裝perl-DBD-MySQL,該方式會自動安裝mysql rpm包。
  ###MHA在執行master_check_repl會調用/usr/bin/mysqlbinlog,對於源碼安裝在不同的路徑的mysql高版本
  ###則收到如下錯誤提示:
  Thu Apr 16 14:01:44 2015 - [info]   Connecting to [email protected](vdbsrv2:22).. 
  mysqlbinlog version is 3.2 (included in MySQL Client 5.0 or lower). This is not recommended. 
    Consider upgrading MySQL Client to 5.1 or higher.
  
  ###解決方案是編譯安裝perl-DBD-MySQL時指定mysql安裝位置,或者參考:mysqlbinlog can not parse row based events
  

10、預設路徑下mysql用戶端如果不存在則出現以下提示
  ###通過建立軟鏈或者yum install perl-DBD-MySQL會自動安裝mysql
  Testing mysql connection and privileges..sh: mysql: command not found
  mysql command failed with rc 127:0!
   at /usr/bin/apply_diff_relay_logs line 375

 

11、清理mysql.user使用者表中使用者名稱為空白的記錄(補充@20150421)

    筆者有一次在做線上切換時發現複製賬戶從一個slave可以到新master,而無法從original master串連到新master,刪除使用者為空白記錄後正常

推薦:http://www.cnblogs.com/roucheng/p/mysqljichu.html

MySQL MHA配置常見問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.