Skip to content

Commit

Permalink
Fix mysql_setpermission hostname logic
Browse files Browse the repository at this point in the history
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.

Reported issue: https://bugzilla.redhat.com/show_bug.cgi?id=1976224
  • Loading branch information
mkulik-rh authored and grooverdan committed Aug 25, 2021
1 parent ece30d4 commit 683f91a
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion scripts/mysql_setpermission.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ use strict;
use vars qw($dbh $sth $hostname $opt_user $opt_password $opt_help $opt_host
$opt_socket $opt_port $host $version);

my $sqlport = "";
my $sqlhost = "";
my $user = "";

Expand Down Expand Up @@ -84,9 +85,13 @@ if ($opt_password eq '')
print "\n";
}

# Using port argument with 'localhost' will cause an error
if ($sqlhost ne "localhost") {
$sqlport = ":port=$opt_port";
}

# make the connection to MariaDB
$dbh= DBI->connect("DBI:mysql:mysql:host=$sqlhost:port=$opt_port:mysql_socket=$opt_socket",$opt_user,$opt_password, {PrintError => 0}) ||
$dbh= DBI->connect("DBI:mysql:mysql:host=$sqlhost$sqlport:mysql_socket=$opt_socket",$opt_user,$opt_password, {PrintError => 0}) ||
die("Can't make a connection to the mysql server.\n The error: $DBI::errstr");

# the start of the program
Expand Down

0 comments on commit 683f91a

Please sign in to comment.