os: ubuntu 16.04
db: mysql 5.7.25
mha: 0.58
使用 masterha_check_repl 时一直报错
Fri Mar 8 11:31:30 2019 - [error][/usr/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. Redundant argument in sprintf at /usr/share/perl5/MHA/NodeUtil.pm line 201.
Fri Mar 8 11:31:30 2019 - [error][/usr/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
# masterha_check_repl --conf=/etc/masterha/app1/app1.cnf
Fri Mar 8 11:31:29 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Mar 8 11:31:29 2019 - [info] Reading application default configuration from /etc/masterha/app1/app1.cnf..
Fri Mar 8 11:31:29 2019 - [info] Reading server configuration from /etc/masterha/app1/app1.cnf..
Fri Mar 8 11:31:29 2019 - [info] MHA::MasterMonitor version 0.58.
Fri Mar 8 11:31:30 2019 - [error][/usr/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. Redundant argument in sprintf at /usr/share/perl5/MHA/NodeUtil.pm line 201.
Fri Mar 8 11:31:30 2019 - [error][/usr/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Fri Mar 8 11:31:30 2019 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
需要对 /usr/share/perl5/MHA/NodeUtil.pm 修改
# vi /usr/share/perl5/MHA/NodeUtil.pm
sub parse_mysql_major_version($) {
my $str = shift;
my $result = sprintf( '%03d%03d', $str =~ m/(\d+)/g );
return $result;
}
修改为
# vi /usr/share/perl5/MHA/NodeUtil.pm
sub parse_mysql_major_version($) {
my $str = shift;
$str =~ /(\d+)\.(\d+)/;
my $strmajor = "$1.$2";
my $result = sprintf( '%03d%03d', $strmajor =~ m/(\d+)/g );
return $result;
}