Skip to content

Commit

Permalink
MDEV-21039: Server fails to start with unknown mysqld_safe options
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sysprg committed Aug 18, 2020
1 parent b970363 commit 5796021
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions scripts/mysqld_safe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
}
Expand Down

0 comments on commit 5796021

Please sign in to comment.