@ -7957,9 +7957,9 @@ void MySQL_HostGroups_Manager::update_aws_aurora_set_reader(int _whid, int _rhid
}
pthread_mutex_unlock ( & AWS_Aurora_Info_mutex ) ;
}
q = ( char * ) " SELECT hostgroup_id FROM mysql_servers JOIN mysql_aws_aurora_hostgroups ON hostgroup_id=writer_hostgroup OR hostgroup_id=reader_hostgroup WHERE hostname='%s%s' AND port=%d AND status<>3 " ;
query = ( char * ) malloc ( strlen ( q ) + strlen ( _server_id ) + strlen ( domain_name ) + 32 ) ;
sprintf ( query , q , _server_id , domain_name , aurora_port );
q = ( char * ) " SELECT hostgroup_id FROM mysql_servers JOIN mysql_aws_aurora_hostgroups ON hostgroup_id=writer_hostgroup OR hostgroup_id=reader_hostgroup WHERE hostname='%s%s' AND port=%d AND status<>3 AND hostgroup_id IN (%d,%d) " ;
query = ( char * ) malloc ( strlen ( q ) + strlen ( _server_id ) + strlen ( domain_name ) + 32 + 32 + 32 ) ;
sprintf ( query , q , _server_id , domain_name , aurora_port , _whid , _rhid );
mydb - > execute_statement ( query , & error , & cols , & affected_rows , & resultset ) ;
if ( error ) {
free ( error ) ;
@ -7972,14 +7972,17 @@ void MySQL_HostGroups_Manager::update_aws_aurora_set_reader(int _whid, int _rhid
GloAdmin - > mysql_servers_wrlock ( ) ;
mydb - > execute ( " DELETE FROM mysql_servers_incoming " ) ;
mydb - > execute ( " INSERT INTO mysql_servers_incoming SELECT hostgroup_id, hostname, port, gtid_port, weight, status, compression, max_connections, max_replication_lag, use_ssl, max_latency_ms, comment FROM mysql_servers " ) ;
q = ( char * ) " UPDATE OR IGNORE mysql_servers_incoming SET hostgroup_id=%d WHERE hostname='%s%s' AND port=%d AND hostgroup_id<>%d " ;
// If server present as WRITER try moving it to 'reader_hostgroup'.
q = ( char * ) " UPDATE OR IGNORE mysql_servers_incoming SET hostgroup_id=%d WHERE hostname='%s%s' AND port=%d AND hostgroup_id=%d " ;
query = ( char * ) malloc ( strlen ( q ) + strlen ( _server_id ) + strlen ( domain_name ) + 512 ) ;
sprintf ( query , q , _rhid , _server_id , domain_name , aurora_port , _ r hid) ;
sprintf ( query , q , _rhid , _server_id , domain_name , aurora_port , _ w hid) ;
mydb - > execute ( query ) ;
//free(query);
q = ( char * ) " DELETE FROM mysql_servers_incoming WHERE hostname='%s%s' AND port=%d AND hostgroup_id<>%d " ;
// Reader could previously be also a reader, in which case previous operation 'UPDATE OR IGNORE'
// did nothing. If server is still in the 'writer_hostgroup', we should remove it.
q = ( char * ) " DELETE FROM mysql_servers_incoming WHERE hostname='%s%s' AND port=%d AND hostgroup_id=%d " ;
//query=(char *)malloc(strlen(q)+strlen(_hostname)+64);
sprintf ( query , q , _server_id , domain_name , aurora_port , _rhid ) ;
sprintf ( query , q , _server_id , domain_name , aurora_port , _ w hid) ;
mydb - > execute ( query ) ;
//free(query);
q = ( char * ) " UPDATE mysql_servers_incoming SET status=0 WHERE hostname='%s%s' AND port=%d AND hostgroup_id=%d " ;