MariaDB

MHA NodeUtil.pm 관련 version 에러

kkimdubi·2019년 1월 18일·조회 3,979

우분투 환경에서 mysql 및 MHA 구성할 때 발생했던 MHA 에러 공유드립니다.

1. MHA 기동 에러

[error][/usr/local/share/perl/5.22.1/MHA/MasterMonitor.pm, ln425] Error happened on checking configurations.
Redundant argument in sprintf at /usr/local/share/perl/5.22.1/MHA/NodeUtil.pm line 190.

[error][/usr/local/share/perl/5.22.1/MHA/MasterMonitor.pm, ln524] Error happened on monitoring servers.
 

 

1-1. 에러 발생 부분

 
sub parse_mysql_version($) {
  my $str = shift;
  my $result = sprintf( '%03d%03d%03d', $str =~ m/(\d+)/g );
  return $result;
}


sub parse_mysql_major_version($) {
  my $str = shift;
  my $result = sprintf( '%03d%03d', $str =~ m/(\d+)/g );
  return $result;
}

=> MHA가 DB node에 접속하며 version parsing 할 때 발생하는 에러로 보임

Server version: 5.7.24-0ubuntu0.16.04.1-log (Ubuntu)

=> DB version

 

2. 해결 방법

sub parse_mysql_version($) {
  my $str = shift;
##editied by kimdohee
  ($str) =  $str =~ m/^[^-]*/g;
  my $result = sprintf( '%03d%03d%03d', $str =~ m/(\d+)/g );
  return $result;
}


sub parse_mysql_major_version($) {
  my $str = shift;
 
  ($str) =  $str =~ m/^[^-]*/g;
  my $result = sprintf( '%03d%03d%03d', $str =~ m/(\d+)/g );
#  my $result = sprintf( '%03d%03d', $str =~ m/(\d+)/g );
  return $result;
}

=>  ($str) = $str =~ m/^[^-]*/g; 부분을 추가하여

db version 에서  ' - ' 이후 나오는 문자열들을 모두 제거하도록 파싱 함수를 수정함

 
 

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.