polardbxengine/mysql-test/extra/rpl_tests/rpl_change_master_bind.inc

81 lines
2.2 KiB
PHP

#
# Test CHANGE MASTER MASTER_BIND=xxx
#
# Parameters:
# $master_bind - the address to use for MASTER_BIND
# $master_bind_error_expected - expect an error when using the specified
# master_bind address
#
#
# Stop the slave
connection slave;
source include/stop_slave.inc;
# Create table and insert one record with the bind address on master
connection master;
create table t1(n int, b varchar(256));
--replace_result $master_bind <master_bind>
eval insert into t1 values(1, $master_bind);
# Configure slave to connect to master with the give bind address
# for master_bind and master_host unless it's an invalid address
connection slave;
let $_master_host=;
if (!$master_bind_error_expected)
{
if ($master_bind != "''")
{
let $_master_host=master_host=$master_bind,;
}
}
--replace_result $master_bind <master_bind>
eval change master to $_master_host master_bind=$master_bind;
start slave;
# Check that SHOW SLAVE STATUS has Master_bind column set to $master_bind
let $master_bind_value= query_get_value(SHOW SLAVE STATUS, Master_Bind, 1);
if (`select '$master_bind_value' != $master_bind`)
{
source include/show_rpl_debug_info.inc;
echo 'master_bind_value: $master_bind_value' != 'master_bind: $master_bind';
die Master_bind in SHOW SLAVE STAUS not showing configured value;
}
if ($master_bind_error_expected)
{
# The given master bind address is not valid
# and replication should fail
let $slave_io_errno= $master_bind_error_expected;
let $slave_io_error_is_nonfatal= 1;
source include/wait_for_slave_io_error.inc;
echo got expected error $master_bind_error_expected;
source include/stop_slave.inc;
# Reset the master_bind so that cleanup can run
eval change master to master_bind='';
start slave;
}
source include/wait_for_slave_to_start.inc;
connection master;
sync_slave_with_master;
connection slave;
let $master_bind_repl= query_get_value(select b from t1, b, 1);
if (`select '$master_bind_repl' != $master_bind`)
{
select * from t1;
source include/show_rpl_debug_info.inc;
echo 'master_bind_repl: $master_bind_repl' != 'master_bind: $master_bind';
die The replicated value to show replication working was not correct;
}
# Clean up
connection master;
drop table t1;
sync_slave_with_master;