diff options
author | unknown <tsmith@quadxeon.mysql.com> | 2007-04-28 01:27:54 +0200 |
---|---|---|
committer | unknown <tsmith@quadxeon.mysql.com> | 2007-04-28 01:27:54 +0200 |
commit | b762965cb018d52481c2d83e4019a38a1a9050f7 (patch) | |
tree | c71eb1aac5c6de4e25b3a83d40f51602663a98d1 /extra/my_print_defaults.c | |
parent | ecbbc45742c026bd16225aa53b956b97a0b1c22a (diff) | |
download | mariadb-git-b762965cb018d52481c2d83e4019a38a1a9050f7.tar.gz |
Bug #27390: mysqld_multi --config-file= not working as documented
Recognize the --no-defaults, --defaults-file and --defaults-extra-file
options. Treat old --config-file argument as if --defaults-extra-file
had been specified instead.
Plus a few other defaults-related cleanups.
extra/my_print_defaults.c:
Make help text more accurate regarding how --config-file, --defaults-file, and --defaults-extra-file should be used. Flag --config-file as deprecated.
mysys/default.c:
Always print a newline after listing the default files, even if
--defaults-file= was set (in my_print_default_files()).
scripts/mysqld_multi.sh:
Recognize --no-defaults, --defaults-file and --defaults-extra-file options.
Treat old --config-file argument as if --defaults-extra-file had been specified
instead.
Improve find_groups() method, to honor --defaults-file, etc.
A few random drive-by cleanups, while I'm here.
Diffstat (limited to 'extra/my_print_defaults.c')
-rw-r--r-- | extra/my_print_defaults.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c index eb077f91ece..f5f7e68c9e6 100644 --- a/extra/my_print_defaults.c +++ b/extra/my_print_defaults.c @@ -33,7 +33,20 @@ const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace"; static struct my_option my_long_options[] = { - {"config-file", 'c', "The config file to be used.", + /* + NB: --config-file is troublesome, because get_defaults_options() doesn't + know about it, but we pretend --config-file is like --defaults-file. In + fact they behave differently: see the comments at the top of + mysys/default.c for how --defaults-file should behave. + + This --config-file option behaves as: + - If it has a directory name part (absolute or relative), then only this + file is read; no error is given if the file doesn't exist + - If the file has no directory name part, the standard locations are + searched for a file of this name (and standard filename extensions are + added if the file has no extension) + */ + {"config-file", 'c', "Deprecated, please use --defaults-file instead. Name of config file to read; if no extension is given, default extension (e.g., .ini or .cnf) will be added", (gptr*) &config_file, (gptr*) &config_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, #ifdef DBUG_OFF @@ -43,11 +56,11 @@ static struct my_option my_long_options[] = {"debug", '#', "Output debug log", (gptr*) &default_dbug_option, (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, #endif - {"defaults-file", 'c', "Synonym for --config-file.", + {"defaults-file", 'c', "Like --config-file, except: if first option, then read this file only, do not read global or per-user config files; should be the first option", (gptr*) &config_file, (gptr*) &config_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"defaults-extra-file", 'e', - "Read this file after the global /etc config file and before the config file in the users home directory.", + "Read this file after the global config file and before the config file in the users home directory; should be the first option", (gptr*) &my_defaults_extra_file, (gptr*) &my_defaults_extra_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"defaults-group-suffix", 'g', @@ -55,7 +68,7 @@ static struct my_option my_long_options[] = (gptr*) &my_defaults_group_suffix, (gptr*) &my_defaults_group_suffix, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"extra-file", 'e', - "Synonym for --defaults-extra-file.", + "Deprecated. Synonym for --defaults-extra-file.", (gptr*) &my_defaults_extra_file, (gptr*) &my_defaults_extra_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, @@ -86,7 +99,7 @@ static void usage(my_bool version) my_print_help(my_long_options); my_print_default_files(config_file); my_print_variables(my_long_options); - printf("\nExample usage:\n%s --config-file=my client mysql\n", my_progname); + printf("\nExample usage:\n%s --defaults-file=example.cnf client mysql\n", my_progname); } #include <help_end.h> |