From 6a987149a8151bffdf6ef9f21989ae894c9e18f5 Mon Sep 17 00:00:00 2001 From: Marek Kulik Date: Wed, 25 Aug 2021 17:41:43 +1000 Subject: MDEV-26474: Fix mysql_setpermission hostname logic Changes: - Don't include port in connection parameters with 'localhost' hostname More info: The hostname, if not specified or specified as '' or 'localhost', will default to a MySQL server running on the local machine using the default for the UNIX socket. To connect to a MySQL server on the local machine via TCP, you must specify the loopback IP address (127.0.0.1) as the host. To comply with what the perl module expects, we omit the port for a host=localhost connection. Reported issue: https://bugzilla.redhat.com/show_bug.cgi?id=1976224 --- scripts/mysql_setpermission.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/mysql_setpermission.sh b/scripts/mysql_setpermission.sh index 29311b9c101..6f0ad72c1d9 100644 --- a/scripts/mysql_setpermission.sh +++ b/scripts/mysql_setpermission.sh @@ -105,11 +105,15 @@ else { if ($opt_socket and -S $opt_socket) { - $dsn .= "${prefix}_socket=$opt_socket"; + $dsn .= "${prefix}_socket=$opt_socket"; } else { - $dsn .= "host=$sqlhost;port=$opt_port"; + $dsn .= "host=$sqlhost"; + if ($sqlhost ne "localhost") + { + $dsn .= ";port=$opt_port"; + } } # make the connection to MariaDB -- cgit v1.2.1