From f3e98745bd7b4fed004a8dbf74ec47c0ccf3942a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 7 Jul 2017 14:52:15 +0300 Subject: [PATCH] MXS-1313: Fix updating of server character sets The server character set is now updated every time a connection is created with mxs_mysql_real_connect. --- server/core/mysql_utils.c | 12 +++++++++++- server/modules/authenticator/MySQLAuth/dbusers.c | 5 ----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/server/core/mysql_utils.c b/server/core/mysql_utils.c index 901dd566f..4fb8deb33 100644 --- a/server/core/mysql_utils.c +++ b/server/core/mysql_utils.c @@ -166,7 +166,17 @@ MYSQL *mxs_mysql_real_connect(MYSQL *con, SERVER *server, const char *user, cons mysql_ssl_set(con, listener->ssl_key, listener->ssl_cert, listener->ssl_ca_cert, NULL, NULL); } - return mysql_real_connect(con, server->name, user, passwd, NULL, server->port, NULL, 0); + MYSQL* mysql = mysql_real_connect(con, server->name, user, passwd, NULL, server->port, NULL, 0); + + if (mysql) + { + /** Copy the server charset */ + MY_CHARSET_INFO cs_info; + mysql_get_character_set_info(mysql, &cs_info); + server->charset = cs_info.number; + } + + return mysql; } bool mxs_mysql_trim_quotes(char *s) diff --git a/server/modules/authenticator/MySQLAuth/dbusers.c b/server/modules/authenticator/MySQLAuth/dbusers.c index d8d07d6e2..ef72e31fc 100644 --- a/server/modules/authenticator/MySQLAuth/dbusers.c +++ b/server/modules/authenticator/MySQLAuth/dbusers.c @@ -517,11 +517,6 @@ static bool check_server_permissions(SERVICE *service, SERVER* server, return my_errno != ER_ACCESS_DENIED_ERROR; } - /** Copy the server charset */ - MY_CHARSET_INFO cs_info; - mysql_get_character_set_info(mysql, &cs_info); - server->charset = cs_info.number; - if (server->server_string == NULL) { const char *server_string = mysql_get_server_info(mysql);