375
375
time_t server_start_time, flush_status_time;
377
char mysql_home[FN_REFLEN], pidfile_name[FN_REFLEN], system_time_zone[30];
377
char drizzle_home[FN_REFLEN], pidfile_name[FN_REFLEN], system_time_zone[30];
378
378
char *default_tz_name;
379
379
char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN];
380
char mysql_real_data_home[FN_REFLEN],
380
char drizzle_real_data_home[FN_REFLEN],
381
381
language[FN_REFLEN], reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN],
382
382
*opt_init_file, *opt_tc_log_file;
383
char mysql_unpacked_real_data_home[FN_REFLEN];
383
char drizzle_unpacked_real_data_home[FN_REFLEN];
384
384
uint32_t reg_ext_length;
385
385
const key_map key_map_empty(0);
386
386
key_map key_map_full(0); // Will be initialized later
388
388
const char *opt_date_time_formats[3];
390
uint32_t mysql_data_home_len;
391
char mysql_data_home_buff[2], *mysql_data_home=mysql_real_data_home;
390
uint32_t drizzle_data_home_len;
391
char mysql_data_home_buff[2], *drizzle_data_home=drizzle_real_data_home;
392
392
char server_version[SERVER_VERSION_LENGTH];
393
393
char *opt_mysql_tmpdir;
394
394
const char *myisam_recover_options_str="OFF";
2184
2184
if (opt_error_log && !opt_help)
2186
2186
if (!log_error_file_ptr[0])
2187
fn_format(log_error_file, pidfile_name, mysql_data_home, ".err",
2187
fn_format(log_error_file, pidfile_name, drizzle_data_home, ".err",
2188
2188
MY_REPLACE_EXT); /* replace '.<domain>' by '.err', bug#4997 */
2190
fn_format(log_error_file, log_error_file_ptr, mysql_data_home, ".err",
2190
fn_format(log_error_file, log_error_file_ptr, drizzle_data_home, ".err",
2191
2191
MY_UNPACK_FILENAME | MY_SAFE_PATH);
2192
2192
if (!log_error_file[0])
2193
2193
opt_error_log= 1; // Too long file name
2491
2491
We have enough space for fiddling with the argv, continue
2493
check_data_home(mysql_real_data_home);
2494
if (my_setwd(mysql_real_data_home,MYF(MY_WME)) && !opt_help)
2493
check_data_home(drizzle_real_data_home);
2494
if (my_setwd(drizzle_real_data_home,MYF(MY_WME)) && !opt_help)
2495
2495
unireg_abort(1); /* purecov: inspected */
2496
mysql_data_home= mysql_data_home_buff;
2497
mysql_data_home[0]=FN_CURLIB; // all paths are relative from here
2498
mysql_data_home[1]=0;
2499
mysql_data_home_len= 2;
2496
drizzle_data_home= mysql_data_home_buff;
2497
drizzle_data_home[0]=FN_CURLIB; // all paths are relative from here
2498
drizzle_data_home[1]=0;
2499
drizzle_data_home_len= 2;
2501
2501
if ((user_info= check_user(drizzled_user)))
3012
3012
NO_ARG, 0, 0, 0, 0, 0, 0},
3013
3013
{"datadir", 'h',
3014
3014
N_("Path to the database root."),
3015
(char**) &mysql_data_home,
3016
(char**) &mysql_data_home, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
3015
(char**) &drizzle_data_home,
3016
(char**) &drizzle_data_home, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
3017
3017
{"default-storage-engine", OPT_STORAGE_ENGINE,
3018
3018
N_("Set the default storage engine (table type) for tables."),
3019
3019
(char**)&default_storage_engine_str, (char**)&default_storage_engine_str,
4125
4125
slave_exec_mode_options= 0;
4126
4126
slave_exec_mode_options= (uint)
4127
4127
find_bit_type_or_exit(slave_exec_mode_str, &slave_exec_mode_typelib, NULL);
4128
drizzle_home_ptr= mysql_home;
4128
drizzle_home_ptr= drizzle_home;
4129
4129
pidfile_name_ptr= pidfile_name;
4130
4130
log_error_file_ptr= log_error_file;
4131
4131
language_ptr= language;
4132
mysql_data_home= mysql_real_data_home;
4132
drizzle_data_home= drizzle_real_data_home;
4133
4133
session_startup_options= (OPTION_AUTO_IS_NULL | OPTION_BIN_LOG |
4134
4134
OPTION_QUOTE_SHOW_CREATE | OPTION_SQL_NOTES);
4135
4135
protocol_version= PROTOCOL_VERSION;
4151
4151
/* Set directory paths */
4152
4152
strmake(language, LANGUAGE, sizeof(language)-1);
4153
strmake(mysql_real_data_home, get_relative_path(DATADIR),
4154
sizeof(mysql_real_data_home)-1);
4153
strmake(drizzle_real_data_home, get_relative_path(DATADIR),
4154
sizeof(drizzle_real_data_home)-1);
4155
4155
mysql_data_home_buff[0]=FN_CURLIB; // all paths are relative from here
4156
4156
mysql_data_home_buff[1]=0;
4157
mysql_data_home_len= 2;
4157
drizzle_data_home_len= 2;
4159
4159
/* Replication parameters */
4160
4160
master_info_file= (char*) "master.info",
4217
4217
global_system_variables.tx_isolation= ISO_SERIALIZABLE;
4220
strmake(mysql_home,argument,sizeof(mysql_home)-1);
4220
strmake(drizzle_home,argument,sizeof(drizzle_home)-1);
4223
4223
if (default_collation_name == compiled_default_collation_name)
4224
4224
default_collation_name= 0;
4227
strmake(mysql_real_data_home,argument, sizeof(mysql_real_data_home)-1);
4227
strmake(drizzle_real_data_home,argument, sizeof(drizzle_real_data_home)-1);
4228
4228
/* Correct pointer set by my_getopt (for embedded library) */
4229
mysql_data_home= mysql_real_data_home;
4230
mysql_data_home_len= strlen(mysql_data_home);
4229
drizzle_data_home= drizzle_real_data_home;
4230
drizzle_data_home_len= strlen(drizzle_data_home);
4233
4233
if (!drizzled_user || !strcmp(drizzled_user, argument))
4650
4650
static void fix_paths(void)
4652
4652
char buff[FN_REFLEN],*pos;
4653
convert_dirname(mysql_home,mysql_home,NULL);
4654
/* Resolve symlinks to allow 'mysql_home' to be a relative symlink */
4655
my_realpath(mysql_home,mysql_home,MYF(0));
4656
/* Ensure that mysql_home ends in FN_LIBCHAR */
4657
pos= strchr(mysql_home, '\0');
4653
convert_dirname(drizzle_home,drizzle_home,NULL);
4654
/* Resolve symlinks to allow 'drizzle_home' to be a relative symlink */
4655
my_realpath(drizzle_home,drizzle_home,MYF(0));
4656
/* Ensure that drizzle_home ends in FN_LIBCHAR */
4657
pos= strchr(drizzle_home, '\0');
4658
4658
if (pos[-1] != FN_LIBCHAR)
4660
4660
pos[0]= FN_LIBCHAR;
4663
convert_dirname(mysql_real_data_home,mysql_real_data_home,NULL);
4664
(void) fn_format(buff, mysql_real_data_home, "", "",
4663
convert_dirname(drizzle_real_data_home,drizzle_real_data_home,NULL);
4664
(void) fn_format(buff, drizzle_real_data_home, "", "",
4665
4665
(MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS));
4666
(void) unpack_dirname(mysql_unpacked_real_data_home, buff);
4666
(void) unpack_dirname(drizzle_unpacked_real_data_home, buff);
4667
4667
convert_dirname(language,language,NULL);
4668
(void) my_load_path(mysql_home,mysql_home,""); // Resolve current dir
4669
(void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home);
4670
(void) my_load_path(pidfile_name,pidfile_name,mysql_real_data_home);
4668
(void) my_load_path(drizzle_home,drizzle_home,""); // Resolve current dir
4669
(void) my_load_path(drizzle_real_data_home,drizzle_real_data_home,drizzle_home);
4670
(void) my_load_path(pidfile_name,pidfile_name,drizzle_real_data_home);
4671
4671
(void) my_load_path(opt_plugin_dir, opt_plugin_dir_ptr ? opt_plugin_dir_ptr :
4672
get_relative_path(PLUGINDIR), mysql_home);
4672
get_relative_path(PLUGINDIR), drizzle_home);
4673
4673
opt_plugin_dir_ptr= opt_plugin_dir;
4675
4675
char *sharedir=get_relative_path(SHAREDIR);
4677
4677
strncpy(buff,sharedir,sizeof(buff)-1); /* purecov: tested */
4680
strcpy(buff, mysql_home);
4681
strncat(buff, sharedir, sizeof(buff)-strlen(mysql_home)-1);
4680
strcpy(buff, drizzle_home);
4681
strncat(buff, sharedir, sizeof(buff)-strlen(drizzle_home)-1);
4683
4683
convert_dirname(buff,buff,NULL);
4684
4684
(void) my_load_path(language,language,buff);