diff --git a/client/mysql.cc b/client/mysql.cc
index bfb93d60c5a..795328917f4 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -3202,6 +3202,30 @@ static int reconnect(void)
   return 0;
 }
 
+static void process_status_info(void *data, enum enum_mariadb_status_info type, ...)
+{
+  va_list ap;
+
+  va_start(ap, type);
+
+  if (type == SESSION_TRACK_TYPE)
+  {
+    enum enum_session_state_type track_type= (enum enum_session_state_type)va_arg(ap, int);
+
+    switch (track_type) {
+      case SESSION_TRACK_SCHEMA:
+      {
+        MARIADB_CONST_STRING *val= va_arg(ap, MARIADB_CONST_STRING *);
+        my_free(current_db);
+        current_db= my_strndup(PSI_NOT_INSTRUMENTED, val->str, val->length, MYF(MY_FAE));
+        break;
+      }
+      default:
+        break;
+    }
+  }
+}
+
 static void get_current_db()
 {
   MYSQL_RES *res;
@@ -5012,6 +5036,7 @@ sql_real_connect(char *host,char *database,char *user,char *password,
     mysql_close(&mysql);
   }
   mysql_init(&mysql);
+  mysql_optionsv(&mysql, MARIADB_OPT_STATUS_CALLBACK, process_status_info, &mysql);
   if (opt_init_command)
     mysql_options(&mysql, MYSQL_INIT_COMMAND, opt_init_command);
   if (opt_connect_timeout)
