IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    MHA error:There is no alive server. We can’t do failover

    Adamhuan发表于 2017-02-23 15:31:24
    love 0

    关于这个错误:

    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).

    在之前的部署文档里:

    http://d-prototype.com/archives/6873

    我说需要把server_id,改成10,可以走过去。
    其实这是很片面的。

    今天又遇到了这个问题,并解决了。

    关于该问题,比较靠谱的解释是:
    MHA默认去连接MySQL的端口是:3306

    如果你的主机名解析,或者你写的IP都没问题,防火墙也关闭了,那么,剩下的原因是:
    你的MySQL,没有运行在默认端口上。

    如果不能修改MySQL的端口为:3306。

    那么你可以给MHA,添加PORT描述。

    以下是添加端口描述的MHA应用配置文件的样例:

    [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

    ——————————————
    Done。



沪ICP备19023445号-2号
友情链接