千家信息网

MHA常见报错以及解决方法

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,error 1运行masterha_check_repl --conf=/etc/masterha/app1.cnf报错Testing mysql connection and privileges.
千家信息网最后更新 2026年10月31日MHA常见报错以及解决方法

error 1
运行masterha_check_repl --conf=/etc/masterha/app1.cnf报错

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

解决方案:ln -s /usr/local/mysql/bin/mysql /usr/bin

error 2
运行masterha_check_repl --conf=/etc/masterha/app1.cnf报错

Can't exec "mysqlbinlog": No such file or directory at /usr/local/perl5/MHA/BinlogManager.pm line 99.

解决方案:在node节点上执行 which mysqlbinlog,比如我的结果就是
[localhost~]$ which mysqlbinlog
/usr/local/mysql/bin/mysqlbinlog

ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog

error 3
运行master_check_ssh --conf=/etc/masterha/aap1.cnf报错

connection via SSH fromroot@192.168.17.199toroot@192.168.17.200 ...
permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
[error] [/usr/local/share/perl5/MHA/SSHcheck.pm,ln163]

解决方案:一般是公钥有问题,需要删除 /root/.ssh/known_hosts里面的相关ip内容 重新生成一下就ok了

error 4
运行master_check_ssh --conf=/etc/masterha/aap1.cnf报错

Sun Nov 20 20:10:59 2016 - [info] Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysqllog/3306 --output_file=/masterha/app1/save_binary_logs_test --manager_version=0.55 --start_file=mysql-bin.000001
Sun Nov 20 20:10:59 2016 - [info] Connecting to root@172.18.3.180(172.18.3.180)..
Failed to save binary log: Binlog not found from /data/mysqllog/3306! If you got this error at MHA Manager, please set "master_binlog_dir=/path/to/binlog_directory_of_the_master" correctly in the MHA Manager's configuration file and try again.
at /usr/bin/save_binary_logs line 117.
eval {...} called at /usr/bin/save_binary_logs line 66
main::main() called at /usr/bin/save_binary_logs line 62
Sun Nov 20 20:10:59 2016 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln154] Master setting check failed!
Sun Nov 20 20:10:59 2016 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln367] Master configuration failed.
Sun Nov 20 20:10:59 2016 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln386] Error happend on checking configurations. at /usr/bin/masterha_check_repl line 48.
Sun Nov 20 20:10:59 2016 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln482] Error happened on monitoring servers.
Sun Nov 20 20:10:59 2016 - [info] Got exit code 1 (Not master dead).

解决方案:
/etc/masterha/aap1.cnf中的datadir路径应该是mysql中bin-log的位置

error 5

运行masterha_check_repl --conf=/etc/masterha/app1.cnf报错

Mon Nov 21 11:11:40 2016 - [info] MHA::MasterRotate version 0.55.
Mon Nov 21 11:11:40 2016 - [info] Starting online master switch..
Mon Nov 21 11:11:40 2016 - [info]
Mon Nov 21 11:11:40 2016 - [info] * Phase 1: Configuration Check Phase..
Mon Nov 21 11:11:40 2016 - [info]
Mon Nov 21 11:11:40 2016 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Mon Nov 21 11:11:40 2016 - [info] Reading application default configurations from /etc/masterha/app1.cnf..
Mon Nov 21 11:11:40 2016 - [info] Reading server configurations from /etc/masterha/app1.cnf..
Mon Nov 21 11:11:40 2016 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln604] There are 2 non-slave servers! MHA manages at most one non-slave server. Check configurations.
Mon Nov 21 11:11:40 2016 - [error][/usr/share/perl5/vendor_perl/MHA/ManagerUtil.pm, ln178] Got ERROR: at /usr/share/perl5/vendor_perl/MHA/MasterRotate.pm line 85.

解决方案:
手动将修复后的master做成新的master的从服务器

warning 1
各从库应设置relay_log_purge=0
###否则收到以下告警信息 ##mysql -e 'set global relay_log_purge=0' 动态修改该参数,因为随时slave会提升为master
[warning] relay_log_purge=0 is not set on slave (172.18.3.140:3306).

warning 2
各从库设置read_only=1
###否则收到以下告警信息 ## mysql -e 'set global read_only=1' 动态修改该参数,因为随时slave会提升为master。
[info] read_only=1 is not set on slave (172.18.3.107:3306


[root@centos7-04 ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf

问题一:

Thu Aug 23 04:39:01 2018 - [warning] log-bin is not set on slave 192.168.0.189(192.168.0.189:3306). This host cannot be a master.

Thu Aug 23 04:39:01 2018 - [warning] log-bin is not set on slave 192.168.0.190(192.168.0.190:3306). This host cannot be a master.

解决办法:

从库的各客户端应开启binlog,即log_bin=on,两个从上都开启

[root@centos7-02 ~]# vi /etc/my.cnf

basedir = /usr/local/mysql

datadir = /data/mysql

socket = /tmp/mysql.sock

server-id=189

log_bin=on

问题二:

Can't exec "mysqlbinlog": 没有那个文件或目录 at /usr/local/share/perl5/MHA/BinlogManager.pm line 106.

mysqlbinlog version command failed with rc 1:0, please verify PATH, LD_LIBRARY_PATH, and client options

at /usr/local/bin/apply_diff_relay_logs line 493.

解决办法:

在所有节点上执行如下命令

[root@centos7-01 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/local/bin/mysqlbinlog

[root@centos7-01 ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

[root@centos7-02 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/local/bin/mysqlbinlog

[root@centos7-02 ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

[root@centos7-03 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/local/bin/mysqlbinlog

[root@centos7-03 ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

问题三:

Thu Aug 23 05:41:59 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln226] Failed to get master_ip_failover_script status with return code 1:0.

Thu Aug 23 05:41:59 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. at /usr/local/bin/masterha_check_repl line 48

Thu Aug 23 05:41:59 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.

解决办法:

[root@centos7-04 ~]# vi /etc/masterha/app1.cnf

#master_ip_failover_script= /usr/local/bin/master_ip_failover //先暂时注释这条选项,后面引入keepalived后和修改该脚本以后再开启该选项

注释:Failover有两种方式:一种是虚拟IP地址,一种是全局配置文件。MHA并没有限定使用哪一种方式,而是让用户自己选择,虚拟IP地址的方式会牵扯到其它的软件,比如keepalive软件,而且还要修改脚本master_ip_failover。

问题四:

Thu Aug 23 18:17:14 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. Can't exec "/usr/local/bin/master_ip_failover": 权限不够 at /usr/local/share/perl5/MHA/ManagerUtil.pm line 68.

Thu Aug 23 18:17:14 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.

解决办法:

chmod +x /usr/local/bin/master_ip_failover

问题五:

[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln492] Server 192.168.0.190(192.168.0.190:3306) is dead, but must be alive! Check server settings.

解决办法:

[root@centos7-04 ~]# rm -rf /var/log/masterha/app1.log/app1.failover.complete #删除MHA管理机上的这个文件

问题六:

[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln492] Server 192.168.0.190(192.168.0.190:3306) is dead, but must be alive! Check server settings.

解决办法:

清除防火墙规则

问题七:

[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln492] Server 192.168.0.188(192.168.0.188:3306) is dead, but must be alive! Check server settings.

Fri Aug 24 23:50:37 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. at /usr/local/share/perl5/MHA/MasterMonitor.pm line 399

解决办法:

重启主库的mysql服务

问题八:

[error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln205] Slaves settings check failed!

解决办法:

登陆从数据库,查看主数据库是不是自己设定的

mysql> show slave status\G

Master_Server_Id: 189

问题九:

[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln781] Multi-master configuration is detected, but two or more masters are either writable (read-only is not set) or dead! Check configurations for details. Master configurations are as below:

Master 192.168.0.189(192.168.0.189:3306), dead

Master 192.168.0.188(192.168.0.188:3306), replicating from 192.168.0.189(192.168.0.189:3306)

解决办法:

所有从上执行

mysql -uroot -p -e "set global read_only=1"

问题十:

mysqlbinlog: unknown variable 'default-character-set=utf8'

mysqlbinlog version command failed with rc 7:0, please verify PATH, LD_LIBRARY_PATH, and client options

解决办法:

在所有从服务器上注释掉clinet段default-character-set=utf8mb4

更改默认字符集UTF8到utf8mb4

[client]

#default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

问题 办法 方案 解决方案 运行 文件 方式 注释 服务 信息 动态 参数 地址 数据 数据库 服务器 脚本 节点 软件 不够 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 互联网金融监管科技数据 互联网中国科技 科技类互联网 互联网科技股票 互联网女皇 腾讯科技 智腾互联网科技有限公司 互联网科技与大数据专业 中国互联网十大科技股排名 深圳市罗太互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 滨湖区互联网智能科技产品有哪些 梅州GM互联网络科技有限公司 城市宝互联网科技有限公司 2021世界互联网领先科技成果发布 互联网科技接地气 互联网科技企业商标注意事项 张家口科技产业互联网平台 数字互联网科技有限公司 互联网科技对化妆品行业 新华互联网科技学校 佩信高科技互联网 云创客互联网科技公司 互联网科技创新服务 互联网校园科技培训 南通创西澳互联网科技有限公司 上海钢联属于互联网科技股吗 本届互联网大会上的黑科技 互联网科技包装股份有限公司上市 互联网科技创业有什么好项目
0