Commit 4934c9be authored by unknown's avatar unknown

Don't allow startup when default storage engine is specified to be a

storage engine that is disabled. This was fixed once in 4.1, but regressed
in 5.0 because of changes to storage engine initialization. (Bug #9815)


sql/mysqld.cc:
  Move check of whether default storage engine is available to after
  storage engine initialization.
parent e2220f47
......@@ -3033,6 +3033,23 @@ server.");
sql_print_error("Can't init databases");
unireg_abort(1);
}
/*
Check that the default storage engine is actually available.
*/
if (!ha_storage_engine_is_enabled((enum db_type)
global_system_variables.table_type))
{
if (!opt_bootstrap)
{
sql_print_error("Default storage engine (%s) is not available",
ha_get_storage_engine((enum db_type)
global_system_variables.table_type));
unireg_abort(1);
}
global_system_variables.table_type= DB_TYPE_MYISAM;
}
tc_log= (total_ha_2pc > 1 ? (opt_bin_log ?
(TC_LOG *) &mysql_bin_log :
(TC_LOG *) &tc_log_mmap) :
......@@ -6999,22 +7016,6 @@ static void get_options(int argc,char **argv)
!opt_slow_log)
sql_print_warning("options --log-slow-admin-statements and --log-queries-not-using-indexes have no effect if --log-slow-queries is not set");
/*
Check that the default storage engine is actually available.
*/
if (!ha_storage_engine_is_enabled((enum db_type)
global_system_variables.table_type))
{
if (!opt_bootstrap)
{
sql_print_error("Default storage engine (%s) is not available",
ha_get_storage_engine((enum db_type)
global_system_variables.table_type));
exit(1);
}
global_system_variables.table_type= DB_TYPE_MYISAM;
}
if (argc > 0)
{
fprintf(stderr, "%s: Too many arguments (first extra is '%s').\nUse --help to get a list of available options\n", my_progname, *argv);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment