dba http://blog.csdn.net/zengxuewen2045/article/details/51524880
關於這個錯誤:
|
1
2
3
4
|
Mon
Feb 13 10:29:41 2017 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln188] There is no alive server. We can't do failover
Mon
Feb 13 10:29:41 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. at /usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm line 326
Mon
Feb 13 10:29:41 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Mon
Feb 13 10:29:41 2017 - [info] Got exit code 1 (Not master dead).
|
在之前的部署文檔里:
|
1
|
http://d
-prototype.com/archives/6873
|
我說需要把server_id,改成10,可以走過去。
其實這是很片面的。
今天又遇到了這個問題,並解決了。
關於該問題,比較靠譜的解釋是:
MHA默認去連接MySQL的端口是:3306
如果你的主機名解析,或者你寫的IP都沒問題,防火牆也關閉了,那么,剩下的原因是:
你的MySQL,沒有運行在默認端口上。
如果不能修改MySQL的端口為:3306。
那么你可以給MHA,添加PORT描述。
以下是添加端口描述的MHA應用配置文件的樣例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[server
default]
manager_workdir=/work_dir
/mha_manager
manager_log=/work_dir
/mha_manager/mha_manager.log
[server1]
hostname
=mha2
candidate_master
=1
port
=3307
[server2]
hostname
=mha3
candidate_master
=1
port
=3307
[server3]
hostname
=mha4
#candidate_master
=1
no_master
=1
port
=3307
|
——————————————
=================================================
8.MHA架構中的錯誤
Tue Apr 28 15:15:36 2015 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln193] There is no alive slave. We can't do failover
Tue Apr 28 15:15:36 2015 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln383] Error happend on checking configurations. at /usr/local/share/perl5/MHA/MasterMonitor.pm line 298
Tue Apr 28 15:15:36 2015 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln478] Error happened on monitoring servers.
解決方法:
(1).刪除健康檢查文件 rm -rf /var/log/masterha/app1/app1.master_status.health
(2).在宕機的數據庫中重新同步到主服務器 change master to master_host...............
(3).檢查復制是否出錯 masterha_check_repl --conf=/etc/mysqlmha/conf/app1.cnf
========================================
主從同步已經打好的情況下執行
grant all privileges on *.* to 'root'@'server01' identified by '123qwe!@#';
grant all privileges on *.* to 'root'@'server02' identified by '123qwe!@#';
grant all privileges on *.* to 'root'@'server03' identified by '123qwe!@#';
grant all privileges on *.* to 'root'@'server04' identified by '123qwe!@#';
flush privileges;
[root@server01 lib]# masterha_check_repl --conf=/etc/masterha/app1.cnf
Tue Jul 12 16:08:08 2016 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Tue Jul 12 16:08:08 2016 - [info] Reading application default configurations from /etc/masterha/app1.cnf..
Tue Jul 12 16:08:08 2016 - [info] Reading server configurations from /etc/masterha/app1.cnf..
Tue Jul 12 16:08:08 2016 - [info] MHA::MasterMonitor version 0.53.
Tue Jul 12 16:08:08 2016 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln193] There is no alive slave. We can't do failover
Tue Jul 12 16:08:08 2016 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln383] Error happend on checking configurations. at /usr/local/share/perl5/MHA/MasterMonitor.pm line 298
Tue Jul 12 16:08:08 2016 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln478] Error happened on monitoring servers.
Tue Jul 12 16:08:08 2016 - [info] Got exit code 1 (Not master dead).
配置主主復制架構,並設置其中一台為read_only (set global read_only=1;)
