mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
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.
This commit is contained in:
parent
e2220f4766
commit
4934c9be9d
1 changed files with 17 additions and 16 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue