diff --git a/server/modules/monitor/mm_mon.c b/server/modules/monitor/mm_mon.c index a71d2cc7d..60acea825 100644 --- a/server/modules/monitor/mm_mon.c +++ b/server/modules/monitor/mm_mon.c @@ -531,18 +531,20 @@ char *server_string; } /* get variable 'read_only' set by an external component */ - if (mysql_query(database->con, "SHOW GLOBAL VARIABLES LIKE 'read_only'") == 0 - && (result = mysql_store_result(database->con)) != NULL) - { - num_fields = mysql_num_fields(result); - while ((row = mysql_fetch_row(result))) - { - if (strncasecmp(row[1], "OFF", 3) == 0) { - ismaster = 1; - } - } - mysql_free_result(result); - } + if (mysql_query(database->con, "SHOW GLOBAL VARIABLES LIKE 'read_only'") == 0 + && (result = mysql_store_result(database->con)) != NULL) + { + num_fields = mysql_num_fields(result); + while ((row = mysql_fetch_row(result))) + { + if (strncasecmp(row[1], "OFF", 3) == 0) { + ismaster = 1; + } else { + isslave = 1; + } + } + mysql_free_result(result); + } /* Remove addition info */ monitor_clear_pending_status(database, SERVER_STALE_STATUS); @@ -563,7 +565,7 @@ char *server_string; } /* Set the Master role */ - if (isslave && ismaster) + if (ismaster) { monitor_clear_pending_status(database, SERVER_SLAVE); monitor_set_pending_status(database, SERVER_MASTER);