Hello Chad,
Please see my comment below.
Thank you,
Gleb.
Chad MILLER wrote:
> #At file:///Volumes/Source/src/5.0-bugteam--bug32136/
>
> 2723 Chad MILLER 2008-11-26
> Bug#32136: mysqld_multi --defaults-file not respected while using \
> --mysqld=mysqld_safe
>
> The server run didn't know the correct section to read in a
> configuration file, and would read from "[mysqld]" even though
> mysqld_multi had already read the defaults and made them into explicit
> parameters.
>
> Worse, the "defaults-file" parameter says that it means "Read only
> this configuration file, do not read the standard system-wide and
> user-specific files", which should apply not only to mysql-multi, but
> to the server also.
>
> So, now if "defaults-file" is given, put "no-defaults" before all the
> explicit parameters we read from the defaults-file and feed to the
> mysqld or mysqld_safe.
AFAIU your patch *always* puts --no-defaults parameter before other
parameters, not only if --defaults-file parameter is given.
Probably this is fine, but in this case user-specific ~/.my.cnf is
always ignored. Is it really what you want?
> modified:
> scripts/mysqld_multi.sh
>
> === modified file 'scripts/mysqld_multi.sh'
> --- a/scripts/mysqld_multi.sh 2007-12-28 00:02:28 +0000
> +++ b/scripts/mysqld_multi.sh 2008-11-26 15:51:59 +0000
> @@ -293,7 +293,12 @@ sub start_mysqlds()
> @groups = &find_groups($groupids);
> for ($i = 0; defined($groups[$i]); $i++)
> {
> + # Defaults are made explicit parameters to server execution...
> @options = defaults_for_group($groups[$i]);
> + # ...so server MUST NOT try to read again from some config file, especially
> + # as the "right" file may be unknown to the server if we are using
> + # --defaults-file=... params in here.
> + unshift(@options,"--no-defaults");
>
> $mysqld_found= 1; # The default
> $mysqld_found= 0 if (!length($mysqld));
>
>