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
This commit is contained in:
Marek Kulik 2021-08-25 17:41:43 +10:00 committed by Daniel Black
parent 1b2acc5b9d
commit bd3eb52851

View File

@ -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