From 2d1b2bd32d10421462798b9c8d9b0d89dd818ce8 Mon Sep 17 00:00:00 2001 From: zhangyan Date: Tue, 19 Mar 2013 17:56:01 +0800 Subject: [PATCH 1/3] add mysqladmin option --- mysqltuner.pl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mysqltuner.pl b/mysqltuner.pl index f61881c..3624335 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -76,6 +76,7 @@ GetOptions(\%opt, 'pass=s', 'skipsize', 'checkversion', + 'mysqladmin=s', 'help', ); @@ -251,10 +252,15 @@ sub mysql_setup { $remotestring = ''; my $command = `which mysqladmin`; chomp($command); - if (! -e $command) { + if ($opt{mysqladmin} ) { + $command = $opt{mysqladmin}; + } + elsif (! -e $command) { badprint "Unable to find mysqladmin in your \$PATH. Is MySQL installed?\n"; exit; } + + # Are we being asked to connect via a socket? if ($opt{socket} ne 0) { $remotestring = " -S $opt{socket}"; @@ -275,7 +281,7 @@ sub mysql_setup { # Did we already get a username and password passed on the command line? if ($opt{user} ne 0 and $opt{pass} ne 0) { $mysqllogin = "-u $opt{user} -p'$opt{pass}'".$remotestring; - my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`; + my $loginstatus = `$command ping $mysqllogin 2>&1`; if ($loginstatus =~ /mysqld is alive/) { goodprint "Logged in using credentials passed on the command line\n"; return 1; @@ -287,7 +293,7 @@ sub mysql_setup { if ( -r "/etc/psa/.psa.shadow" and $doremote == 0 ) { # It's a Plesk box, use the available credentials $mysqllogin = "-u admin -p`cat /etc/psa/.psa.shadow`"; - my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`; + my $loginstatus = `$command ping $mysqllogin 2>&1`; unless ($loginstatus =~ /mysqld is alive/) { badprint "Attempted to use login credentials from Plesk, but they failed.\n"; exit 0; @@ -295,7 +301,7 @@ sub mysql_setup { } elsif ( -r "/etc/mysql/debian.cnf" and $doremote == 0 ){ # We have a debian maintenance account, use it $mysqllogin = "--defaults-file=/etc/mysql/debian.cnf"; - my $loginstatus = `mysqladmin $mysqllogin ping 2>&1`; + my $loginstatus = `$command $mysqllogin ping 2>&1`; if ($loginstatus =~ /mysqld is alive/) { goodprint "Logged in using credentials from debian maintenance account.\n"; return 1; @@ -305,7 +311,7 @@ sub mysql_setup { } } else { # It's not Plesk or debian, we should try a login - my $loginstatus = `mysqladmin $remotestring ping 2>&1`; + my $loginstatus = `$command $remotestring ping 2>&1`; if ($loginstatus =~ /mysqld is alive/) { # Login went just fine $mysqllogin = " $remotestring "; @@ -332,7 +338,7 @@ sub mysql_setup { $mysqllogin .= " -p'$password'"; } $mysqllogin .= $remotestring; - my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`; + my $loginstatus = `$command ping $mysqllogin 2>&1`; if ($loginstatus =~ /mysqld is alive/) { print STDERR "\n"; if (! length($password)) { From 8824bb49f1ffc58858c59cc42141d9130a3cf12e Mon Sep 17 00:00:00 2001 From: "aylazhang@gmail.com" Date: Tue, 19 Mar 2013 18:05:29 +0800 Subject: [PATCH 2/3] little modify --- mysqltuner.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysqltuner.pl b/mysqltuner.pl index 3624335..1482adf 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -252,7 +252,7 @@ sub mysql_setup { $remotestring = ''; my $command = `which mysqladmin`; chomp($command); - if ($opt{mysqladmin} ) { + if ( $opt{mysqladmin} ) { $command = $opt{mysqladmin}; } elsif (! -e $command) { From dbdddf47756a5c1f2fcd4cc465fa7242b52df0f6 Mon Sep 17 00:00:00 2001 From: aylazh Date: Tue, 19 Mar 2013 18:09:29 +0800 Subject: [PATCH 3/3] nothing. --- mysqltuner.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysqltuner.pl b/mysqltuner.pl index 1482adf..0a136d5 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -254,8 +254,8 @@ sub mysql_setup { chomp($command); if ( $opt{mysqladmin} ) { $command = $opt{mysqladmin}; - } - elsif (! -e $command) { + } + elsif (! -e $command ) { badprint "Unable to find mysqladmin in your \$PATH. Is MySQL installed?\n"; exit; }