summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/install_test_db.sh14
-rwxr-xr-xmysql-test/mysql-test-run.pl11
-rw-r--r--mysql-test/mysql_test_run_new.c8
3 files changed, 27 insertions, 6 deletions
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");