Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
10.2.27, 10.3.18, 10.4.8
-
None
Description
Current mysqld_multi perl script fails due to a syntax error introduced a syntax error due to use of elseif instead of perl elsif
The following one character change fixes this:
diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
|
index b8730e2624a..748925bef0b 100644
|
--- a/scripts/mysqld_multi.sh
|
+++ b/scripts/mysqld_multi.sh
|
@@ -349,7 +349,7 @@ sub start_mysqlds()
|
$options[$j]= quote_shell_word($options[$j]);
|
$tmp.= " $options[$j]";
|
}
|
- elseif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
|
+ elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
|
{
|
$suffix_found= 1;
|
}
|
But even with this fixed mysqld_multi can't start any server instance, as the new code in 10.3.18 does not pass --defaults-group-suffix as the very first option to mysqld, as required.
The following should fix this for the default case, where mysqld in the [mysqld_multi] section is either given as mysqld or mysqld_multi, as expected. It will fail though if mysqld setting already contains a command line setting by itself ...
@@ -368,7 +368,6 @@ sub start_mysqlds()
|
print "wanted mysqld binary.\n\n";
|
$info_sent= 1;
|
}
|
- $com.= $tmp;
|
|
if (!$suffix_found)
|
{
|
@@ -376,6 +375,8 @@ sub start_mysqlds()
|
$com.= $groups[$i];
|
}
|
|
+ $com.= $tmp;
|
+
|
if ($opt_wsrep_new_cluster) {
|
$com.= " --wsrep-new-cluster";
|
}
|
Both problems were introduced by commit commit 137d8ed3fee14335bd707474bd49f4e43b3bf309
for MDEV-18863
Attachments
Issue Links
- causes
-
MDEV-21039 Server fails to start with mysqld_multi with mysqld_safe options
- Closed
- is caused by
-
MDEV-18863 Galera SST scripts can't read mysqld_multi's [mysqldN] option groups
- Closed
- relates to
-
MDEV-20728 /usr/sbin/mysqld: unknown variable 'defaults-group-suffix=mysqld1
- Closed
-
MDEV-20868 mysqld_multi failed to run due to a basic script syntax error
- Closed
- links to