diff options
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r-- | sql/mysqld.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 4a61897856d..770890138a2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -296,7 +296,6 @@ const char *my_localhost= "localhost", *delayed_user= "DELAYED"; bool opt_large_files= sizeof(my_off_t) > 4; static my_bool opt_autocommit; ///< for --autocommit command-line option - /* Used with --help for detailed option */ @@ -4099,6 +4098,8 @@ static int init_common_variables() test purposes, to be able to start "mysqld" even if the requested character set is not available (see bug#18743). */ + myf utf8_flag= global_system_variables.old_behavior & + OLD_MODE_UTF8_IS_UTF8MB3 ? MY_UTF8_IS_UTF8MB3 : 0; for (;;) { char *next_character_set_name= strchr(default_character_set_name, ','); @@ -4106,7 +4107,7 @@ static int init_common_variables() *next_character_set_name++= '\0'; if (!(default_charset_info= get_charset_by_csname(default_character_set_name, - MY_CS_PRIMARY, MYF(MY_WME)))) + MY_CS_PRIMARY, MYF(utf8_flag | MY_WME)))) { if (next_character_set_name) { @@ -4123,7 +4124,7 @@ static int init_common_variables() if (default_collation_name) { CHARSET_INFO *default_collation; - default_collation= get_charset_by_name(default_collation_name, MYF(0)); + default_collation= get_charset_by_name(default_collation_name, MYF(utf8_flag)); if (!default_collation) { #ifdef WITH_PERFSCHEMA_STORAGE_ENGINE @@ -4164,7 +4165,7 @@ static int init_common_variables() if (!(character_set_filesystem= get_charset_by_csname(character_set_filesystem_name, - MY_CS_PRIMARY, MYF(MY_WME)))) + MY_CS_PRIMARY, MYF(utf8_flag | MY_WME)))) return 1; global_system_variables.character_set_filesystem= character_set_filesystem; @@ -7485,9 +7486,11 @@ static void print_help() static void usage(void) { DBUG_ENTER("usage"); + myf utf8_flag= global_system_variables.old_behavior & + OLD_MODE_UTF8_IS_UTF8MB3 ? MY_UTF8_IS_UTF8MB3 : 0; if (!(default_charset_info= get_charset_by_csname(default_character_set_name, MY_CS_PRIMARY, - MYF(MY_WME)))) + MYF(utf8_flag | MY_WME)))) exit(1); if (!default_collation_name) default_collation_name= (char*) default_charset_info->name; |