mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
BUG#11809016 - NO WAY TO DISCOVER AN INSTANCE IS NO LONGER A SLAVE FOLLOWING MYSQL BUG#28796
Before BUG#28796, an empty host was used to identify that an instance was no longer a slave. However, BUG#28796 changed this behavior and one cannot set an empty host. Besides, a RESET SLAVE only cleans up information on the next event to retrieve from the master, disables ssl and resets heartbeat period. So a call to SHOW SLAVE STATUS after issuing a RESET SLAVE still returns some valid information, such as host, port, user and password. To fix this problem, we have introduced the command RESET SLAVE ALL that does what a regular RESET SLAVE does and also clears host, port, user and password information thus allowing users to identify when an instance is no longer a slave.
This commit is contained in:
@ -77,5 +77,31 @@ reset slave;
|
||||
source include/check_slave_no_error.inc;
|
||||
change master to master_user='root';
|
||||
|
||||
--let $rpl_only_running_threads= 1
|
||||
|
||||
#
|
||||
# BUG#11809016 - NO WAY TO DISCOVER AN INSTANCE IS NO LONGER A SLAVE FOLLOWING MYSQL BUG#28796
|
||||
#
|
||||
|
||||
reset slave;
|
||||
--source include/start_slave.inc
|
||||
|
||||
--source include/stop_slave.inc
|
||||
--let $_slave_master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1)
|
||||
--let $_slave_master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1)
|
||||
--let $_slave_master_port= query_get_value(SHOW SLAVE STATUS, Master_Port, 1)
|
||||
|
||||
reset slave all;
|
||||
--error ER_BAD_SLAVE
|
||||
start slave;
|
||||
|
||||
--let $_show_master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1)
|
||||
if ($_show_master_host != No such row)
|
||||
{
|
||||
die;
|
||||
}
|
||||
|
||||
--replace_result $_slave_master_host MASTER_HOST $_slave_master_user MASTER_USER $_slave_master_port MASTER_PORT
|
||||
--eval CHANGE MASTER TO MASTER_HOST= '$_slave_master_host', MASTER_USER= '$_slave_master_user', MASTER_PORT= $_slave_master_port
|
||||
--source include/start_slave.inc
|
||||
|
||||
--source include/rpl_end.inc
|
||||
|
@ -41,4 +41,12 @@ include/stop_slave_sql.inc
|
||||
reset slave;
|
||||
include/check_slave_no_error.inc
|
||||
change master to master_user='root';
|
||||
reset slave;
|
||||
include/start_slave.inc
|
||||
include/stop_slave.inc
|
||||
reset slave all;
|
||||
start slave;
|
||||
ERROR HY000: The server is not configured as slave; fix in config file or with CHANGE MASTER TO
|
||||
CHANGE MASTER TO MASTER_HOST= 'MASTER_HOST', MASTER_USER= 'MASTER_USER', MASTER_PORT= MASTER_PORT;
|
||||
include/start_slave.inc
|
||||
include/rpl_end.inc
|
||||
|
@ -41,4 +41,12 @@ include/stop_slave_sql.inc
|
||||
reset slave;
|
||||
include/check_slave_no_error.inc
|
||||
change master to master_user='root';
|
||||
reset slave;
|
||||
include/start_slave.inc
|
||||
include/stop_slave.inc
|
||||
reset slave all;
|
||||
start slave;
|
||||
ERROR HY000: The server is not configured as slave; fix in config file or with CHANGE MASTER TO
|
||||
CHANGE MASTER TO MASTER_HOST= 'MASTER_HOST', MASTER_USER= 'MASTER_USER', MASTER_PORT= MASTER_PORT;
|
||||
include/start_slave.inc
|
||||
include/rpl_end.inc
|
||||
|
Reference in New Issue
Block a user