From 7d51d2f69e79b62b4498b71e81071797578703b9 Mon Sep 17 00:00:00 2001 From: Jean-Marie RENOUARD Date: Mon, 15 Jun 2015 15:23:05 +0200 Subject: [PATCH 1/2] adding --passwordfile option --- mysqltuner.pl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mysqltuner.pl b/mysqltuner.pl index f945b38..59937ef 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# mysqltuner.pl - Version 1.4.1 +# mysqltuner.pl - Version 1.4.2 # High Performance MySQL Tuning Script # Copyright (C) 2006-2014 Major Hayden - major@mhtx.net # @@ -42,7 +42,7 @@ use Getopt::Long; use File::Basename; use Cwd 'abs_path'; # Set up a few variables for use in the script -my $tunerversion = "1.4.1"; +my $tunerversion = "1.4.2"; my (@adjvars, @generalrec); # Set defaults @@ -61,6 +61,7 @@ my %opt = ( "skipsize" => 0, "checkversion" => 0, "buffers" => 0, + "passwordfile" => 0, ); # Gather the options from the command line @@ -82,6 +83,7 @@ GetOptions(\%opt, 'mysqlcmd=s', 'help', 'buffers', + 'passwordfile=s', ); if (defined $opt{'help'} && $opt{'help'} == 1) { usage(); } @@ -114,6 +116,7 @@ sub usage { " --checkversion Check for updates to MySQLTuner (default: don't check)\n". " --forcemem Amount of RAM installed in megabytes\n". " --forceswap Amount of swap memory configured in megabytes\n". + " --passwordfile Path to a password file list(one password by line)\n". "\n". " Output Options:\n". " --nogood Remove OK responses\n". @@ -126,7 +129,7 @@ sub usage { } my $devnull = File::Spec->devnull(); -my $basic_password_files=abs_path(dirname(__FILE__))."/basic_passwords.txt"; +my $basic_password_files=($opt{passwordfile} eq "0")? abs_path(dirname(__FILE__))."/basic_passwords.txt" : abs_path($opt{passwordfile}) ; # Setting up the colors for the print styles my $good = ($opt{nocolor} == 0)? "[\e[0;32mOK\e[0m]" : "[OK]" ; From c8043c2965802c5708d97aec947a0d81dd7a8c66 Mon Sep 17 00:00:00 2001 From: Jean-Marie RENOUARD Date: Mon, 15 Jun 2015 15:34:29 +0200 Subject: [PATCH 2/2] Warning message for lagging slave --- mysqltuner.pl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mysqltuner.pl b/mysqltuner.pl index 59937ef..8fd94e0 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -547,12 +547,16 @@ sub get_replication_status { my $slave_status = `$mysqlcmd $mysqllogin -Bse "show slave status\\G"`; my ($io_running) = ($slave_status =~ /slave_io_running\S*\s+(\S+)/i); my ($sql_running) = ($slave_status =~ /slave_sql_running\S*\s+(\S+)/i); + my ($seconds_behind_master) = ($slave_status =~ /seconds_behind_master\S*\s+(\S+)/i); if ($io_running eq 'Yes' && $sql_running eq 'Yes') { if ($myvar{'read_only'} eq 'OFF') { badprint "This replication slave is running with the read_only option disabled."; } else { goodprint "This replication slave is running with the read_only option enabled."; } + if ($seconds_behind_master>0) { + badprint "This replication slave is lagging and slave has $seconds_behind_master second(s) behind master host."; + } } } @@ -1165,15 +1169,15 @@ print "\n >> MySQLTuner $tunerversion - Major Hayden \n". " >> Bug reports, feature requests, and downloads at http://mysqltuner.com/\n". " >> Run with '--help' for additional options and output filtering\n"; mysql_setup; # Gotta login first -os_setup; # Set up some OS variables +os_setup; # Set up some OS variables get_all_vars; # Toss variables/status into hashes -validate_mysql_version; # Check current MySQL version +validate_mysql_version; # Check current MySQL version check_architecture; # Suggest 64-bit upgrade -check_storage_engines; # Show enabled storage engines -security_recommendations; # Display some security recommendations +check_storage_engines; # Show enabled storage engines +security_recommendations; # Display some security recommendations calculations; # Calculate everything we need mysql_stats; # Print the server stats -make_recommendations; # Make recommendations based on stats +make_recommendations; # Make recommendations based on stats # --------------------------------------------------------------------------- # END 'MAIN' # ---------------------------------------------------------------------------