diff options
author | mmj@tiger.mmj.dk <> | 2007-01-11 09:19:32 +0100 |
---|---|---|
committer | mmj@tiger.mmj.dk <> | 2007-01-11 09:19:32 +0100 |
commit | 49913f2a95d8dcb3ff05160f4c5bf22222bb5f26 (patch) | |
tree | 255d4cdb83d5c64b996d7d22b14af8b5f4ee8b06 | |
parent | 27d56afcfc5c7ccb7793d15f5643fcc058ceaa51 (diff) | |
parent | ba7b6e86f269ed5a634af13f422b92be3294431c (diff) | |
download | mariadb-git-49913f2a95d8dcb3ff05160f4c5bf22222bb5f26.tar.gz |
Merge mjorgensen@bk-internal.mysql.com:/home/bk/mysql-5.0-sage
into tiger.mmj.dk:/Users/mmj/bktrees/mysql-5.0
-rw-r--r-- | configure.in | 16 | ||||
-rw-r--r-- | mysql-test/install_test_db.sh | 14 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 11 | ||||
-rw-r--r-- | mysql-test/mysql_test_run_new.c | 8 | ||||
-rw-r--r-- | scripts/mysql_install_db.sh | 3 | ||||
-rwxr-xr-x | sql/CMakeLists.txt | 4 | ||||
-rw-r--r-- | sql/mysqld.cc | 6 | ||||
-rw-r--r-- | win/README | 3 | ||||
-rwxr-xr-x | win/configure.js | 1 |
9 files changed, 59 insertions, 7 deletions
diff --git a/configure.in b/configure.in index 99a9f3b74ea..493fe8f174f 100644 --- a/configure.in +++ b/configure.in @@ -713,6 +713,22 @@ else AC_MSG_RESULT([no]) fi +# If we should allow init-file, skip-grant-table and bootstrap options +AC_MSG_CHECKING(If we should should enable init-file, skip-grant-table options and bootstrap) +AC_ARG_ENABLE(grant-options, + [ --disable-grant-options Disables the use of --init-file, --skip-grant-tables and --bootstrap options], + [ mysql_grant_options_enabled=$enableval ], + [ mysql_grant_options_enabled=yes ] + ) +if test "$mysql_grant_options_enabled" = "yes" +then + AC_MSG_RESULT([yes]) +else + AC_DEFINE([DISABLE_GRANT_OPTIONS], [1], + [Disables the use of --init-file, --skip-grant-tables and --bootstrap options]) + AC_MSG_RESULT([no]) +fi + MYSQL_SYS_LARGEFILE # Types that must be checked AFTER large file support is checked diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh index 85094ec52fc..75388769808 100644 --- a/mysql-test/install_test_db.sh +++ b/mysql-test/install_test_db.sh @@ -67,14 +67,17 @@ fi mdata=$data/mysql EXTRA_ARG="" -if test ! -x $execdir/mysqld +mysqld= +if test -x $execdir/mysqld then + mysqld=$execdir/mysqld +else if test ! -x $libexecdir/mysqld then echo "mysqld is missing - looked in $execdir and in $libexecdir" exit 1 else - execdir=$libexecdir + mysqld=$libexecdir/mysqld fi fi @@ -100,8 +103,11 @@ basedir=. EXTRA_ARG="--language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/" fi -mysqld_boot=" $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables \ - --basedir=$basedir --datadir=$ldata --skip-innodb --skip-ndbcluster --skip-bdb \ +mysqld_boot="${MYSQLD_BOOTSTRAP-$mysqld}" + +mysqld_boot="$mysqld_boot --no-defaults --bootstrap --skip-grant-tables \ + --basedir=$basedir --datadir=$ldata \ + --skip-innodb --skip-ndbcluster --skip-bdb \ $EXTRA_ARG" echo "running $mysqld_boot" diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 36f5b0a776f..b56b385a2bf 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -2873,12 +2873,19 @@ sub install_db ($$) { mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir); } + # If DISABLE_GRANT_OPTIONS is defined when the server is compiled (e.g., + # configure --disable-grant-options), mysqld will not recognize the + # --bootstrap or --skip-grant-tables options. The user can set + # MYSQLD_BOOTSTRAP to the full path to a mysqld which does accept + # --bootstrap, to accommodate this. + my $exe_mysqld_bootstrap = $ENV{'MYSQLD_BOOTSTRAP'} || $exe_mysqld; + # Log bootstrap command my $path_bootstrap_log= "$opt_vardir/log/bootstrap.log"; mtr_tofile($path_bootstrap_log, - "$exe_mysqld " . join(" ", @$args) . "\n"); + "$exe_mysqld_bootstrap " . join(" ", @$args) . "\n"); - if ( mtr_run($exe_mysqld, $args, $init_db_sql_tmp, + if ( mtr_run($exe_mysqld_bootstrap, $args, $init_db_sql_tmp, $path_bootstrap_log, $path_bootstrap_log, "", { append_log_file => 1 }) != 0 ) diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c index 79db71fa274..f9c0045472d 100644 --- a/mysql-test/mysql_test_run_new.c +++ b/mysql-test/mysql_test_run_new.c @@ -292,6 +292,14 @@ void install_db(char *datadir) die("Unable to create init_db.sql."); /* args */ init_args(&al); + /* + XXX: If mysqld is compiled with DISABLE_GRANT_OPTIONS defined, it + will not recognize the --bootstrap, --init-file or --skip-grant- + tables options. If this is needed here, please check + MYSQLD_BOOTSTRAP in the environment, and use its value instead of + mysqld_file if it is set. See mysql-test-run.pl and + mysql_install_db. + */ add_arg(&al, mysqld_file); add_arg(&al, "--no-defaults"); add_arg(&al, "--bootstrap"); diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index 714b5387f79..0e89a32aa66 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -236,7 +236,8 @@ if test "$in_rpm" -eq 0 -a "$windows" -eq 0 then echo "Installing all prepared tables" fi -mysqld_install_cmd_line="$mysqld $defaults $mysqld_opt --bootstrap \ +mysqld_bootstrap="${MYSQLD_BOOTSTRAP-$mysqld}" +mysqld_install_cmd_line="$mysqld_bootstrap $defaults $mysqld_opt --bootstrap \ --skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb \ --skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K" if $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows \ diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 03b76e171e0..7e26f62b5f7 100755 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -40,6 +40,10 @@ SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/sql/message.rc ADD_DEFINITIONS(-DHAVE_INNOBASE -DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN) + +IF(DISABLE_GRANT_OPTIONS) + ADD_DEFINITIONS(-DDISABLE_GRANT_OPTIONS) +ENDIF(DISABLE_GRANT_OPTIONS) ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover.cc ../libmysql/errmsg.c field.cc field_conv.cc diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 783bca70739..488751eb015 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -4778,8 +4778,10 @@ Disable with --skip-bdb (will save memory).", {"binlog-ignore-db", OPT_BINLOG_IGNORE_DB, "Tells the master that updates to the given database should not be logged tothe binary log.", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, +#ifndef DISABLE_GRANT_OPTIONS {"bootstrap", OPT_BOOTSTRAP, "Used by mysql installation scripts.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, +#endif {"character-set-client-handshake", OPT_CHARACTER_SET_CLIENT_HANDSHAKE, "Don't ignore client side character set value sent during handshake.", (gptr*) &opt_character_set_client_handshake, @@ -4895,9 +4897,11 @@ Disable with --skip-large-pages.", {"init-connect", OPT_INIT_CONNECT, "Command(s) that are executed for each new connection", (gptr*) &opt_init_connect, (gptr*) &opt_init_connect, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, +#ifndef DISABLE_GRANT_OPTIONS {"init-file", OPT_INIT_FILE, "Read SQL commands from this file at startup.", (gptr*) &opt_init_file, (gptr*) &opt_init_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, +#endif {"init-rpl-role", OPT_INIT_RPL_ROLE, "Set the replication role.", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"init-slave", OPT_INIT_SLAVE, "Command(s) that are executed when a slave connects to this master", @@ -5352,10 +5356,12 @@ Can't be set to 1 if --log-slave-updates is used.", "Show user and password in SHOW SLAVE HOSTS on this master", (gptr*) &opt_show_slave_auth_info, (gptr*) &opt_show_slave_auth_info, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, +#ifndef DISABLE_GRANT_OPTIONS {"skip-grant-tables", OPT_SKIP_GRANT, "Start without grant tables. This gives all users FULL ACCESS to all tables!", (gptr*) &opt_noacl, (gptr*) &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, +#endif {"skip-host-cache", OPT_SKIP_HOST_CACHE, "Don't cache host names.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"skip-locking", OPT_SKIP_LOCK, diff --git a/win/README b/win/README index cbda33e1184..8fe3dc21d1e 100644 --- a/win/README +++ b/win/README @@ -49,6 +49,9 @@ The options right now are COMPILATION_COMMENT=<comment> Server comment, default "Source distribution" MYSQL_TCP_PORT=<port> Server port, default 3306 CYBOZU + DISABLE_GRANT_OPTIONS Disables the use of --init-file and --skip-grant-tables + options of mysqld.exe + So the command line could look like: diff --git a/win/configure.js b/win/configure.js index 83531815abd..59c73fc2fab 100755 --- a/win/configure.js +++ b/win/configure.js @@ -47,6 +47,7 @@ try case "WITH_PARTITION_STORAGE_ENGINE": case "__NT__": case "CYBOZU": + case "DISABLE_GRANT_OPTIONS": configfile.WriteLine("SET (" + args.Item(i) + " TRUE)"); break; case "MYSQL_SERVER_SUFFIX": |