MDEV-21039: Server fails to start with unknown mysqld_safe options
Adding any unknown option to the "[mysqld_safe]" section makes mysqld impossible to start with mysqld_multi. For example, after adding the unknown option "numa_interleave" to the "[mysqld_safe]" section, mysqld_multi exits with the following diagnostics: [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--numa_interleave' To get rid of this behavior, this patch by default adds the "--loose-" prefix to all unknown (for mysqld_safe) options. This behavior can be enabled explicitly with the --ignore-unknown option and disabled with the --no-ignore-unknown option.
This commit is contained in:
parent
b970363acf
commit
5796021174
@ -24,6 +24,7 @@ unsafe_my_cnf=0
|
||||
wsrep_on=0
|
||||
dry_run=0
|
||||
defaults_group_suffix=
|
||||
ignore_unknown=1
|
||||
|
||||
# Initial logging status: error log is not open, and not using syslog
|
||||
logging=init
|
||||
@ -383,11 +384,22 @@ parse_arguments() {
|
||||
|
||||
--help) usage ;;
|
||||
|
||||
--ignore-unknown) ignore_unknown=1 ;;
|
||||
--no-ignore-unknown|--not-ignore-unknown) ignore_unknown=0 ;;
|
||||
|
||||
*)
|
||||
case "$unrecognized_handling" in
|
||||
collect) append_arg_to_args "$arg" ;;
|
||||
complain) log_error "unknown option '$arg'" ;;
|
||||
esac
|
||||
if test $ignore_unknown -eq 0
|
||||
then
|
||||
case "$unrecognized_handling" in
|
||||
collect) append_arg_to_args "$arg" ;;
|
||||
complain) log_error "unknown option '$arg'"
|
||||
esac
|
||||
else
|
||||
case "$arg" in
|
||||
"--loose-"*) append_arg_to_args "$arg" ;;
|
||||
*) append_arg_to_args "--loose-$arg"
|
||||
esac
|
||||
fi
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user