summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Kulik <mkulik@redhat.com>2021-08-25 17:41:43 +1000
committerDaniel Black <daniel@mariadb.org>2021-08-25 19:42:52 +1000
commitbd3eb528512dfbb99a57033ff3bf7e09069c0d4e (patch)
tree95486e1f75ef2a185e5183dcdeafc6c50f6f55db
parent1b2acc5b9d784d2cb4cc11e657f1134589c228d4 (diff)
downloadmariadb-git-bd3eb528512dfbb99a57033ff3bf7e09069c0d4e.tar.gz
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
-rw-r--r--scripts/mysql_setpermission.sh8
1 files 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