From 46af11a70b6684a4749c630d29dfe37f9edcd942 Mon Sep 17 00:00:00 2001 From: Leon Yu Date: Sun, 24 Sep 2023 15:28:43 -0700 Subject: [PATCH] Only pass `-P` for socket connection when port option is specified This fix implementation of `be1f4b4` for [GCP cloud-sql-proxy](https://github.com/GoogleCloudPlatform/cloud-sql-proxy), which creates multiple sockets on localhost pointing to multiple remote instances with default port. --- mysqltuner.pl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mysqltuner.pl b/mysqltuner.pl index 18e4833f8..247f6a41e 100644 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -811,11 +811,13 @@ sub mysql_setup { debugprint "MySQL Client: $mysqlcmd"; - $opt{port} = ( $opt{port} eq 0 ) ? 3306 : $opt{port}; - # Are we being asked to connect via a socket? if ( $opt{socket} ne 0 ) { - $remotestring = " -S $opt{socket} -P $opt{port}"; + if ( $opt{port} ne 0 ) { + $remotestring = " -S $opt{socket} -P $opt{port}"; + } else { + $remotestring = " -S $opt{socket}"; + } } if ( $opt{protocol} ne '' ) { @@ -825,6 +827,7 @@ sub mysql_setup { # Are we being asked to connect to a remote server? if ( $opt{host} ne 0 ) { chomp( $opt{host} ); + $opt{port} = ( $opt{port} eq 0 ) ? 3306 : $opt{port}; # If we're doing a remote connection, but forcemem wasn't specified, we need to exit if ( $opt{'forcemem'} eq 0 && is_remote eq 1 ) {