diff --git a/mysqltuner.pl b/mysqltuner.pl index 77bf83f..913ea7d 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -466,9 +466,11 @@ sub get_replication_status { } # Checks for supported or EOL'ed MySQL versions -my ($mysqlvermajor,$mysqlverminor); +my ($mysqlvermajor,$mysqlverminor, $mysqlvermicro); sub validate_mysql_version { - ($mysqlvermajor,$mysqlverminor) = $myvar{'version'} =~ /(\d+)\.(\d+)/; + ($mysqlvermajor,$mysqlverminor,$mysqlvermicro) = $myvar{'version'} =~ /^(\d+)(?:\.(\d+)|)(?:\.(\d+)|)/; + $mysqlverminor ||= 0; + $mysqlvermicro ||= 0; if (!mysql_version_ge(5)) { badprint "Your MySQL version ".$myvar{'version'}." is EOL software! Upgrade soon!\n"; } elsif (mysql_version_ge(6)) { @@ -478,10 +480,12 @@ sub validate_mysql_version { } } -# Checks if MySQL version is greater than equal to (major, minor) +# Checks if MySQL version is greater than equal to (major, minor, micro) sub mysql_version_ge { - my ($maj, $min) = @_; - return $mysqlvermajor > $maj || ($mysqlvermajor == $maj && $mysqlverminor >= ($min || 0)); + my ($maj, $min, $mic) = @_; + $min ||= 0; + $mic ||= 0; + return $mysqlvermajor > $maj || $mysqlvermajor == $maj && ($mysqlverminor > $min || $mysqlverminor == $min && $mysqlvermicro >= $mic); } # Checks for 32-bit boxes with more than 2GB of RAM @@ -532,7 +536,7 @@ sub check_storage_engines { print "\n-------- Storage Engine Statistics -------------------------------------------\n"; infoprint "Status: "; my $engines; - if (mysql_version_ge(5)) { + if (mysql_version_ge(5, 1, 5)) { my @engineresults = `mysql $mysqllogin -Bse "SELECT ENGINE,SUPPORT FROM information_schema.ENGINES WHERE ENGINE NOT IN ('performance_schema','MyISAM','MERGE','MEMORY') ORDER BY ENGINE ASC"`; foreach my $line (@engineresults) { my ($engine,$engineenabled);