mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	mysql-test/r/rpl_rotate_logs.result: removed host dependence in error messages mysql-test/t/rpl_rotate_logs.test: removed host dependence in error messages mysys/my_error.c: comment about using my_error family functions sql/filesort.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/ha_innodb.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/handler.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/item.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/item_cmpfunc.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/item_func.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/item_strfunc.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/item_subselect.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/item_sum.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/lock.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/log.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/mysql_priv.h: error check moved to fill_record sql/mysqld.cc: fixed error messages sql/parse_file.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/protocol.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/protocol_cursor.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/repl_failsafe.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/set_var.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/slave.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sp.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sp_head.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sp_rcontext.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_acl.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_analyse.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_base.cc: changing my_error on my_message and my_printf_error where if they are prefered error check moved to fill_record sql/sql_class.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_class.h: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_db.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_delete.cc: changing my_error on my_message and my_printf_error where if they are prefered error check moved to fill_record sql/sql_handler.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_help.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_insert.cc: changing my_error on my_message and my_printf_error where if they are prefered error check moved to fill_record sql/sql_lex.cc: layout fixed sql/sql_load.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_map.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_parse.cc: error check moved to fill_record changing my_error on my_message and my_printf_error where if they are prefered sql/sql_prepare.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_rename.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_repl.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_select.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_show.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_table.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_trigger.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_udf.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_union.cc: error check moved to fill_record sql/sql_update.cc: error check moved to fill_record sql/sql_view.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/sql_yacc.yy: changing my_error on my_message and my_printf_error where if they are prefered sql/table.cc: changing my_error on my_message and my_printf_error where if they are prefered sql/unireg.cc: changing my_error on my_message and my_printf_error where if they are prefered
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # Test is run with max_binlog_size=2048 to force automatic rotation of the
 | |
| # binary log
 | |
| # Tests done:
 | |
| # - Check that slaves reports correct failures if master.info has strange
 | |
| #   modes/information
 | |
| # - Automatic binary log rotation
 | |
| # - Ensure that temporary tables works over flush logs and binary log
 | |
| #   changes
 | |
| # - Test creating a duplicate key error and recover from it
 | |
| 
 | |
| connect (master,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
 | |
| --disable_warnings
 | |
| drop table if exists t1, t2, t3, t4;
 | |
| --enable_warnings
 | |
| connect (slave,localhost,root,,test,$SLAVE_MYPORT,slave.sock);
 | |
| system cat /dev/null > var/slave-data/master.info;
 | |
| system chmod 000 var/slave-data/master.info;
 | |
| connection slave;
 | |
| --disable_warnings
 | |
| drop table if exists t1, t2, t3, t4;
 | |
| --enable_warnings
 | |
| 
 | |
| # START SLAVE will fail because it can't read the file (mode 000)
 | |
| # (system error 13)
 | |
| --replace_result $MYSQL_TEST_DIR TESTDIR
 | |
| --error 1105
 | |
| start slave;
 | |
| system chmod 600 var/slave-data/master.info;
 | |
| # It will fail again because the file is empty so the slave cannot get valuable
 | |
| # info about how to connect to the master from it (failure in
 | |
| # init_strvar_from_file() in init_master_info()).
 | |
| --error 1201
 | |
| start slave;
 | |
| --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| 
 | |
| # CHANGE MASTER will fail because it first parses master.info before changing
 | |
| # it (so when master.info is bad, people have to use RESET SLAVE first).
 | |
| --error 1201
 | |
| eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root';
 | |
| reset slave;
 | |
| --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root'; 
 | |
| connection master;
 | |
| reset master;
 | |
| connection slave;
 | |
| start slave;
 | |
| connection master;
 | |
| 
 | |
| #
 | |
| # Test FLUSH LOGS
 | |
| #
 | |
| create temporary table temp_table (a char(80) not null);
 | |
| insert into temp_table values ("testing temporary tables");
 | |
| create table t1 (s text);
 | |
| insert into t1 values('Could not break slave'),('Tried hard');
 | |
| sync_slave_with_master;
 | |
| --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| --replace_column 1 # 8 # 9 # 23 # 33 #
 | |
| show slave status;
 | |
| select * from t1;
 | |
| connection master;
 | |
| flush logs;
 | |
| create table t2(m int not null auto_increment primary key);
 | |
| insert into t2 values (34),(67),(123);
 | |
| flush logs;
 | |
| show binary logs;
 | |
| create table t3 select * from temp_table;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| 
 | |
| select * from t3;
 | |
| connection master;
 | |
| drop table temp_table, t3;
 | |
| 
 | |
| #
 | |
| # Now lets make some duplicate key mess and see if we can recover from it
 | |
| #
 | |
| 
 | |
| # First insert a value on the slave
 | |
| connection slave;
 | |
| insert into t2 values(1234);
 | |
| 
 | |
| #same value on the master
 | |
| connection master;
 | |
| set insert_id=1234;
 | |
| insert into t2 values(NULL);
 | |
| connection slave;
 | |
| wait_for_slave_to_stop;
 | |
| 
 | |
| #restart slave skipping one event
 | |
| set global sql_slave_skip_counter=1;
 | |
| start slave;
 | |
| 
 | |
| connection master;
 | |
| 
 | |
| #let slave catch up
 | |
| sync_slave_with_master;
 | |
| connection master;
 | |
| purge master logs to 'master-bin.000002';
 | |
| show master logs;
 | |
| # we just tests if synonyms are accepted
 | |
| purge binary logs to 'master-bin.000002';
 | |
| show binary logs;
 | |
| # sleeping 10 seconds or more would make the slave believe connection is down
 | |
| --real_sleep 1;
 | |
| purge master logs before now();
 | |
| show binary logs;
 | |
| insert into t2 values (65);
 | |
| sync_slave_with_master;
 | |
| --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| --replace_column 1 # 8 # 9 # 23 # 33 #
 | |
| show slave status;
 | |
| select * from t2;
 | |
| 
 | |
| #
 | |
| # Test forcing the replication log to rotate
 | |
| # 
 | |
| 
 | |
| connection master;
 | |
| create temporary table temp_table (a char(80) not null);
 | |
| insert into temp_table values ("testing temporary tables part 2");
 | |
| let $1=100;
 | |
| 
 | |
| create table t3 (n int);
 | |
| disable_query_log;
 | |
| while ($1)
 | |
| {
 | |
| #eval means expand $ expressions
 | |
|  eval insert into t3 values($1 + 4);
 | |
|  dec $1;
 | |
| }
 | |
| enable_query_log;
 | |
| select count(*) from t3 where n >= 4;
 | |
| create table t4 select * from temp_table;
 | |
| show binary logs;
 | |
| show master status;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select * from t4;
 | |
| 
 | |
| --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| --replace_column 1 # 8 # 9 # 23 # 33 #
 | |
| show slave status;
 | |
| # because of concurrent insert, the table may not be up to date
 | |
| # if we do not lock
 | |
| lock tables t3 read;
 | |
| select count(*) from t3 where n >= 4;
 | |
| unlock tables;
 | |
| #clean up
 | |
| connection master;
 | |
| drop table if exists t1,t2,t3,t4;
 | |
| sync_slave_with_master;
 |