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:
Julius Goryavsky 2020-08-11 14:03:02 +02:00
parent b970363acf
commit 5796021174

View File

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