mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| source include/master-slave.inc;
 | |
| 
 | |
| create table t1 (word char(20) not null);
 | |
| load data infile '../../std_data/words.dat' into table t1;
 | |
| --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
 | |
| eval load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1;
 | |
| select * from t1 limit 10;
 | |
| 
 | |
| #
 | |
| # Test slave with wrong password
 | |
| #
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| stop slave;
 | |
| connection master;
 | |
| set password for root@"localhost" = password('foo');
 | |
| connection slave;
 | |
| start slave;
 | |
| connection master;
 | |
| #
 | |
| # Give slave time to do at last one failed connect retry
 | |
| # This one must be short so that the slave will not stop retrying
 | |
| real_sleep 2;
 | |
| set password for root@"localhost" = password('');
 | |
| # Give slave time to connect (will retry every second)
 | |
| sleep 2;
 | |
| 
 | |
| create table t3(n int);
 | |
| insert into t3 values(1),(2);
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select * from t3;
 | |
| select sum(length(word)) from t1;
 | |
| connection master;
 | |
| drop table t1,t3;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| 
 | |
| #test handling of aborted connection in the middle of update
 | |
| connection master;
 | |
| reset master;
 | |
| connection slave;
 | |
| stop slave;
 | |
| reset slave;
 | |
| 
 | |
| connection master;
 | |
| create table t1(n int);
 | |
| #we want the log to exceed 16K to test deal with the log that is bigger than
 | |
| #IO_SIZE
 | |
| let $1=5000;
 | |
| disable_query_log;
 | |
| while ($1)
 | |
| {
 | |
|  eval insert into t1 values($1+get_lock("hold_slave",10)*0);
 | |
|  dec $1;
 | |
| }
 | |
| enable_query_log;
 | |
| 
 | |
| # Try to cause a large relay log lag on the slave 
 | |
| connection slave;
 | |
| select get_lock("hold_slave",10);
 | |
| explain extended select get_lock("hold_slave",10);
 | |
| start slave;
 | |
| #hope this is long enough for I/O thread to fetch over 16K relay log data
 | |
| sleep 3;
 | |
| select release_lock("hold_slave");
 | |
| explain extended select release_lock("hold_slave");
 | |
| unlock tables;
 | |
| 
 | |
| connection master;
 | |
| create table t2(id int);
 | |
| insert into t2 values(connection_id());
 | |
| save_master_pos;
 | |
| 
 | |
| connection master1;
 | |
| # Avoid generating result
 | |
| create temporary table t3(n int);
 | |
| insert into t3 select get_lock('crash_lock%20C', 1) from t2;
 | |
| 
 | |
| connection master;
 | |
| send update t1 set n = n + get_lock('crash_lock%20C', 2);
 | |
| connection master1;
 | |
| sleep 3;
 | |
| select (@id := id) - id from t2;
 | |
| kill @id;
 | |
| # We don't drop t3 as this is a temporary table
 | |
| drop table t2;
 | |
| connection master;
 | |
| --error 1053;
 | |
| reap;
 | |
| connection slave;
 | |
| # The SQL slave thread should now have stopped because the query was killed on
 | |
| # the master (so it has a non-zero error code in the binlog).
 | |
| wait_for_slave_to_stop;
 | |
| 
 | |
| # The following test can't be done because the result of Pos will differ
 | |
| # on different computers
 | |
| # --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| # show slave status;
 | |
| 
 | |
| set global sql_slave_skip_counter=1;
 | |
| start slave;
 | |
| select count(*) from t1;
 | |
| connection master1;
 | |
| drop table t1;
 | |
| create table t1 (n int);
 | |
| insert into t1 values(3456);
 | |
| insert into mysql.user (Host, User, Password)
 | |
|  VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
 | |
| select select_priv,user from mysql.user where user = _binary'blafasel2';
 | |
| update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
 | |
| select select_priv,user from mysql.user where user = _binary'blafasel2';
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select n from t1;
 | |
| select select_priv,user from mysql.user where user = _binary'blafasel2';
 | |
| connection master1;
 | |
| drop table t1;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | 
