From eba70d6c8035108633b74b072648f10d442884e0 Mon Sep 17 00:00:00 2001 From: "nick@mysql.com" <> Date: Thu, 24 Oct 2002 14:33:24 -0600 Subject: [PATCH 1/4] Moved rand initialization from mysqld.cc to sql_class.cc:THD::THD() --- sql/mysqld.cc | 11 +---------- sql/sql_class.cc | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index e6c2c198722..e91ede0bf71 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -290,7 +290,7 @@ int segfaulted = 0; // ensure we do not enter SIGSEGV handler twice */ static bool kill_in_progress=FALSE; -static struct rand_struct sql_rand; +struct rand_struct sql_rand; // used by sql_class.cc:THD::THD() static int cleanup_done; static char **defaults_argv; char glob_hostname[FN_REFLEN]; @@ -2416,15 +2416,6 @@ static void create_new_thread(THD *thd) for (uint i=0; i < 8 ; i++) // Generate password teststring thd->scramble[i]= (char) (rnd(&sql_rand)*94+33); thd->scramble[8]=0; - /* - We need good random number initialization for new thread - Just coping global one will not work - */ - { - ulong tmp=(ulong) (rnd(&sql_rand) * 3000000); - randominit(&(thd->rand), tmp + (ulong) start_time, - tmp + (ulong) thread_id); - } thd->real_id=pthread_self(); // Keep purify happy /* Start a new thread to handle connection */ diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 59c28797a43..e9ea61f4f1f 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -37,6 +37,8 @@ #include #include +extern struct rand_struct sql_rand; + /***************************************************************************** ** Instansiate templates *****************************************************************************/ @@ -172,6 +174,18 @@ THD::THD():user_time(0), fatal_error(0), transaction.trans_log.end_of_file= max_binlog_cache_size; } #endif + + /* + We need good random number initialization for new thread + Just coping global one will not work + */ + { + pthread_mutex_lock(&LOCK_thread_count); + ulong tmp=(ulong) (rnd(&sql_rand) * 3000000); + randominit(&rand, tmp + (ulong) start_time, + tmp + (ulong) thread_id); + pthread_mutex_unlock(&LOCK_thread_count); + } } /* Do operations that may take a long time */ From 6c22ca4454c79db681b376e4f449d9a60ff353bc Mon Sep 17 00:00:00 2001 From: "nick@mysql.com" <> Date: Thu, 24 Oct 2002 16:48:34 -0600 Subject: [PATCH 2/4] Added Rand_log_event --- sql/item_func.cc | 18 ++++++++++++-- sql/log.cc | 7 ++++++ sql/log_event.cc | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ sql/log_event.h | 35 ++++++++++++++++++++++++++- sql/sql_class.cc | 2 +- sql/sql_class.h | 3 ++- sql/sql_parse.cc | 1 + 7 files changed, 122 insertions(+), 5 deletions(-) diff --git a/sql/item_func.cc b/sql/item_func.cc index 7e8213b4380..b861ccdb463 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -743,17 +743,31 @@ double Item_func_round::val() double Item_func_rand::val() { + THD* thd = current_thd; if (arg_count) { // Only use argument once in query uint32 tmp= (uint32) (args[0]->val_int()); - randominit(¤t_thd->rand,(uint32) (tmp*0x10001L+55555555L), + randominit(&thd->rand,(uint32) (tmp*0x10001L+55555555L), (uint32) (tmp*0x10000001L)); #ifdef DELETE_ITEMS delete args[0]; #endif arg_count=0; } - return rnd(¤t_thd->rand); + else if (!thd->rand_used) + { + // no need to send a Rand log event if seed was given eg: RAND(seed), + // as it will be replicated in the query as such. + + // save the seed only the first time RAND() is used in the query + + // once events are forwarded rather than recreated, + // the following can be skipped if inside the slave thread + thd->rand_used=1; + thd->rand_saved_seed1=thd->rand.seed1; + thd->rand_saved_seed2=thd->rand.seed2; + } + return rnd(&thd->rand); } longlong Item_func_sign::val_int() diff --git a/sql/log.cc b/sql/log.cc index 91ef42e1381..fd5f6d0d73f 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1072,6 +1072,13 @@ bool MYSQL_LOG::write(Log_event* event_info) if (e.write(file)) goto err; } + if (thd && thd->rand_used) + { + Rand_log_event e(thd,thd->rand_saved_seed1,thd->rand_saved_seed2); + e.set_log_pos(this); + if (e.write(file)) + goto err; + } if (thd && thd->variables.convert_set) { char buf[1024] = "SET CHARACTER SET "; diff --git a/sql/log_event.cc b/sql/log_event.cc index 1e6fe924682..79c7fd8e99c 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -348,6 +348,18 @@ void Intvar_log_event::pack_info(String* packet) net_store_data(packet, tmp.ptr(), tmp.length()); } +void Rand_log_event::pack_info(String* packet) +{ + char buf1[256], buf[22]; + String tmp(buf1, sizeof(buf1), system_charset_info); + tmp.length(0); + tmp.append("randseed1="); + tmp.append(llstr(seed1, buf)); + tmp.append(",randseed2="); + tmp.append(llstr(seed2, buf)); + net_store_data(packet, tmp.ptr(), tmp.length()); +} + void Slave_log_event::pack_info(String* packet) { char buf1[256], buf[22], *end; @@ -376,6 +388,9 @@ void Log_event::init_show_field_list(List* field_list) field_list->push_back(new Item_empty_string("Info", 20)); } +/* + * only called by SHOW BINLOG EVENTS + */ int Log_event::net_send(THD* thd, const char* log_name, my_off_t pos) { String* packet = &thd->packet; @@ -610,6 +625,9 @@ Log_event* Log_event::read_log_event(const char* buf, int event_len, case INTVAR_EVENT: ev = new Intvar_log_event(buf, old_format); break; + case RAND_EVENT: + ev = new Rand_log_event(buf, old_format); + break; default: break; } @@ -915,6 +933,41 @@ void Intvar_log_event::print(FILE* file, bool short_form, char* last_db) } #endif +/***************************************************************************** + * + * Rand log event + * + ****************************************************************************/ +Rand_log_event::Rand_log_event(const char* buf, bool old_format) + :Log_event(buf, old_format) +{ + buf += (old_format) ? OLD_HEADER_LEN : LOG_EVENT_HEADER_LEN; + seed1 = uint8korr(buf+RAND_SEED1_OFFSET); + seed2 = uint8korr(buf+RAND_SEED2_OFFSET); +} + +int Rand_log_event::write_data(IO_CACHE* file) +{ + char buf[16]; + int8store(buf + RAND_SEED1_OFFSET, seed1); + int8store(buf + RAND_SEED2_OFFSET, seed2); + return my_b_safe_write(file, (byte*) buf, sizeof(buf)); +} + +#ifdef MYSQL_CLIENT +void Rand_log_event::print(FILE* file, bool short_form, char* last_db) +{ + char llbuff[22]; + if (!short_form) + { + print_header(file); + fprintf(file, "\tRand\n"); + } + fprintf(file, "SET RAND SEED1=%s;\n", llstr(seed1, llbuff)); + fprintf(file, "SET RAND SEED2=%s;\n", llstr(seed2, llbuff)); + fflush(file); +} +#endif int Load_log_event::write_data_header(IO_CACHE* file) { @@ -1926,6 +1979,14 @@ int Intvar_log_event::exec_event(struct st_relay_log_info* rli) return 0; } +int Rand_log_event::exec_event(struct st_relay_log_info* rli) +{ + thd->rand.seed1 = seed1; + thd->rand.seed2 = seed2; + rli->inc_pending(get_event_len()); + return 0; +} + int Slave_log_event::exec_event(struct st_relay_log_info* rli) { if (mysql_bin_log.is_open()) diff --git a/sql/log_event.h b/sql/log_event.h index 5f7aa4ad586..ad0a44f9b4a 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -152,6 +152,11 @@ struct sql_ex_info #define I_TYPE_OFFSET 0 #define I_VAL_OFFSET 1 +/* Rand event post-header */ + +#define RAND_SEED1_OFFSET 0 +#define RAND_SEED2_OFFSET 8 + /* Load event post-header */ #define L_THREAD_ID_OFFSET 0 @@ -199,7 +204,7 @@ enum Log_event_type START_EVENT = 1, QUERY_EVENT =2, STOP_EVENT=3, ROTATE_EVENT = 4, INTVAR_EVENT=5, LOAD_EVENT=6, SLAVE_EVENT=7, CREATE_FILE_EVENT=8, APPEND_BLOCK_EVENT=9, EXEC_LOAD_EVENT=10, DELETE_FILE_EVENT=11, - NEW_LOAD_EVENT=12 + NEW_LOAD_EVENT=12, RAND_EVENT=13 }; enum Int_event_type @@ -497,6 +502,34 @@ public: bool is_valid() { return 1; } }; +/***************************************************************************** + * + * Rand log event class + * + ****************************************************************************/ +class Rand_log_event: public Log_event +{ + public: + ulonglong seed1; + ulonglong seed2; + +#ifndef MYSQL_CLIENT + Rand_log_event(THD* thd_arg, ulonglong seed1_arg, ulonglong seed2_arg) + :Log_event(thd_arg),seed1(seed1_arg),seed2(seed2_arg) + {} + void pack_info(String* packet); + int exec_event(struct st_relay_log_info* rli); +#else + void print(FILE* file, bool short_form = 0, char* last_db = 0); +#endif + + Rand_log_event(const char* buf, bool old_format); + ~Rand_log_event() {} + Log_event_type get_type_code() { return RAND_EVENT;} + int get_data_size() { return sizeof(ulonglong) * 2; } + int write_data(IO_CACHE* file); + bool is_valid() { return 1; } +}; class Stop_log_event: public Log_event { diff --git a/sql/sql_class.cc b/sql/sql_class.cc index e9ea61f4f1f..dab8d153c82 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -81,7 +81,7 @@ static void free_var(user_var_entry *entry) THD::THD():user_time(0), fatal_error(0), last_insert_id_used(0), - insert_id_used(0), in_lock_tables(0), + insert_id_used(0), rand_used(0), in_lock_tables(0), global_read_lock(0), bootstrap(0) { host=user=priv_user=db=query=ip=0; diff --git a/sql/sql_class.h b/sql/sql_class.h index 7b5a6da8c6b..09946822dca 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -501,7 +501,8 @@ public: bool set_query_id,locked,count_cuted_fields,some_tables_deleted; bool no_errors, allow_sum_func, password; bool fatal_error; - bool query_start_used,last_insert_id_used,insert_id_used; + bool query_start_used,last_insert_id_used,insert_id_used,rand_used; + ulonglong rand_saved_seed1, rand_saved_seed2; bool system_thread,in_lock_tables,global_read_lock; bool query_error, bootstrap, cleanup_done; bool safe_to_cache_query; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 046b5d45b59..ae32cd078f7 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2912,6 +2912,7 @@ mysql_init_query(THD *thd) thd->total_warn_count=0; // Warnings for this query thd->last_insert_id_used= thd->query_start_used= thd->insert_id_used=0; thd->sent_row_count= thd->examined_row_count= 0; + thd->rand_used=0; thd->safe_to_cache_query= 1; thd->lex.param_list.empty(); DBUG_VOID_RETURN; From 62f36f0221da263496b67e7665656103e71a695e Mon Sep 17 00:00:00 2001 From: "nick@mysql.com" <> Date: Thu, 24 Oct 2002 17:46:14 -0600 Subject: [PATCH 3/4] altered syntax from SLAVE START|STOP to START|STOP SLAVE --- mysql-test/include/master-slave.inc | 4 +-- mysql-test/mysql-test-run.sh | 29 ++++++++++++++------ mysql-test/r/rpl000001.result | 14 +++++----- mysql-test/r/rpl000002.result | 8 +++--- mysql-test/r/rpl000003.result | 4 +-- mysql-test/r/rpl000004.result | 4 +-- mysql-test/r/rpl000005.result | 4 +-- mysql-test/r/rpl000006.result | 4 +-- mysql-test/r/rpl000007.result | 4 +-- mysql-test/r/rpl000008.result | 4 +-- mysql-test/r/rpl000009.result | 4 +-- mysql-test/r/rpl000010.result | 4 +-- mysql-test/r/rpl000011.result | 8 +++--- mysql-test/r/rpl000012.result | 4 +-- mysql-test/r/rpl000013.result | 4 +-- mysql-test/r/rpl000015.result | 2 +- mysql-test/r/rpl000017.result | 2 +- mysql-test/r/rpl000018.result | 2 +- mysql-test/r/rpl_alter.result | 4 +-- mysql-test/r/rpl_empty_master_crash.result | 4 +-- mysql-test/r/rpl_failsafe.result | 8 +++--- mysql-test/r/rpl_flush_log_loop.result | 10 +++---- mysql-test/r/rpl_get_lock.result | 4 +-- mysql-test/r/rpl_log.result | 12 ++++---- mysql-test/r/rpl_log_pos.result | 12 ++++---- mysql-test/r/rpl_mystery22.result | 10 +++---- mysql-test/r/rpl_redirect.result | 4 +-- mysql-test/r/rpl_rotate_logs.result | 8 +++--- mysql-test/r/rpl_skip_error.result | 4 +-- mysql-test/r/rpl_sporadic_master.result | 8 +++--- mysql-test/t/rpl000001.test | 10 +++---- mysql-test/t/rpl000002.test | 16 ++++------- mysql-test/t/rpl000011.test | 16 ++++------- mysql-test/t/rpl000015.test | 10 ++----- mysql-test/t/rpl000017.test | 10 ++----- mysql-test/t/rpl000018.test | 10 ++----- mysql-test/t/rpl_failsafe.test | 8 ++---- mysql-test/t/rpl_flush_log_loop.test | 6 ++-- mysql-test/t/rpl_log.test | 8 +++--- mysql-test/t/rpl_log_pos.test | 16 ++++------- mysql-test/t/rpl_mystery22.test | 14 ++++------ mysql-test/t/rpl_rotate_logs.test | 32 ++++++++-------------- mysql-test/t/rpl_sporadic_master.test | 16 ++++------- sql/sql_yacc.yy | 4 +-- 44 files changed, 167 insertions(+), 206 deletions(-) diff --git a/mysql-test/include/master-slave.inc b/mysql-test/include/master-slave.inc index 474b1357e9e..1013cd2cd52 100644 --- a/mysql-test/include/master-slave.inc +++ b/mysql-test/include/master-slave.inc @@ -4,7 +4,7 @@ connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,); connect (slave1,127.0.0.1,root,,test,$SLAVE_MYPORT,); connection slave; --error 0,1199 -!slave stop; +!stop slave; @r/slave-stopped.result show status like 'Slave_running'; connection master; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; @@ -13,7 +13,7 @@ connection slave; reset slave; # Clean up old test tables drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; @r/slave-running.result show status like 'Slave_running'; # Set the default connection to 'master' diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 3107737ca45..cf9b6653c5a 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -192,6 +192,7 @@ CHARACTER_SET=latin1 DBUSER="" START_WAIT_TIMEOUT=10 STOP_WAIT_TIMEOUT=10 +TEST_REPLICATION=0 while test $# -gt 0; do case "$1" in @@ -265,6 +266,9 @@ while test $# -gt 0; do --user-test=*) USER_TEST=`$ECHO "$1" | $SED -e "s;--user-test=;;"` ;; + --rpl) + TEST_REPLICATION=1 + ;; --mysqld=*) TMP=`$ECHO "$1" | $SED -e "s;--mysqld=;;"` EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT $TMP" @@ -1289,15 +1293,22 @@ $ECHO $DASH72 if [ -z "$1" ] ; then - if [ x$RECORD = x1 ]; then - $ECHO "Will not run in record mode without a specific test case." - else - for tf in $TESTDIR/*.$TESTSUFFIX - do - run_testcase $tf - done - $RM -f $TIMEFILE # Remove for full test - fi + if [ x$RECORD = x1 ]; then + $ECHO "Will not run in record mode without a specific test case." + else + if [ x$TEST_REPLICATION = x1 ]; then + for tf in $TESTDIR/rpl*.$TESTSUFFIX + do + run_testcase $tf + done + else + for tf in $TESTDIR/*.$TESTSUFFIX + do + run_testcase $tf + done + fi + $RM -f $TIMEFILE # Remove for full test + fi else while [ ! -z "$1" ]; do tname=`$BASENAME $1 .test` diff --git a/mysql-test/r/rpl000001.result b/mysql-test/r/rpl000001.result index 2dc21e86152..5cee2e6deff 100644 --- a/mysql-test/r/rpl000001.result +++ b/mysql-test/r/rpl000001.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1,t2,t3; create table t1 (word char(20) not null); load data infile '../../std_data/words.dat' into table t1; @@ -30,9 +30,9 @@ abandoned abandoning abandonment abandons -slave stop; +stop slave; set password for root@"localhost" = password('foo'); -slave start; +start slave; set password for root@"localhost" = password(''); create table t3(n int); insert into t3 values(1),(2); @@ -45,13 +45,13 @@ sum(length(word)) 141 drop table t1,t3; reset master; -slave stop; +stop slave; reset slave; create table t1(n int); select get_lock("hold_slave",10); get_lock("hold_slave",10) 1 -slave start; +start slave; select release_lock("hold_slave"); release_lock("hold_slave") 1 @@ -68,7 +68,7 @@ kill @id; drop table t2; Server shutdown in progress set global sql_slave_skip_counter=1; -slave start; +start slave; select count(*) from t1; count(*) 5000 diff --git a/mysql-test/r/rpl000002.result b/mysql-test/r/rpl000002.result index 4c2b3bdfde6..819f43da103 100644 --- a/mysql-test/r/rpl000002.result +++ b/mysql-test/r/rpl000002.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; create table t1 (n int auto_increment primary key); set insert_id = 2000; @@ -17,7 +17,7 @@ show slave hosts; Server_id Host Port Rpl_recovery_rank Master_id 2 127.0.0.1 9999 2 1 drop table t1; -slave stop; +stop slave; drop table if exists t2; create table t2(id int auto_increment primary key, created datetime); set timestamp=12345; @@ -25,7 +25,7 @@ insert into t2 set created=now(); select * from t2; id created 1 1970-01-01 06:25:45 -slave start; +start slave; select * from t2; id created 1 1970-01-01 06:25:45 diff --git a/mysql-test/r/rpl000003.result b/mysql-test/r/rpl000003.result index b123b3d98c5..7c63ada9cdf 100644 --- a/mysql-test/r/rpl000003.result +++ b/mysql-test/r/rpl000003.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; create table t1(n int primary key); insert into t1 values (1),(2),(2); diff --git a/mysql-test/r/rpl000004.result b/mysql-test/r/rpl000004.result index 82b208d0b58..a677eac36d4 100644 --- a/mysql-test/r/rpl000004.result +++ b/mysql-test/r/rpl000004.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; set SQL_LOG_BIN=0; drop table if exists t1; create table t1 (word char(20) not null, index(word)); diff --git a/mysql-test/r/rpl000005.result b/mysql-test/r/rpl000005.result index 3e9028bf2cf..228bb00a1a3 100644 --- a/mysql-test/r/rpl000005.result +++ b/mysql-test/r/rpl000005.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; CREATE TABLE t1 (name varchar(64), age smallint(3)); INSERT INTO t1 SET name='Andy', age=31; diff --git a/mysql-test/r/rpl000006.result b/mysql-test/r/rpl000006.result index e7fc5151ac4..e256e0f0136 100644 --- a/mysql-test/r/rpl000006.result +++ b/mysql-test/r/rpl000006.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; set SQL_LOG_BIN=0,timestamp=200006; drop table if exists t1; create table t1(t timestamp not null,a char(1)); diff --git a/mysql-test/r/rpl000007.result b/mysql-test/r/rpl000007.result index c2823bf1203..6889f6af2bc 100644 --- a/mysql-test/r/rpl000007.result +++ b/mysql-test/r/rpl000007.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists foo; create table foo (n int); insert into foo values(4); diff --git a/mysql-test/r/rpl000008.result b/mysql-test/r/rpl000008.result index a0230d55702..eb0089da9d6 100644 --- a/mysql-test/r/rpl000008.result +++ b/mysql-test/r/rpl000008.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; use test; drop table if exists foo; create table foo (n int); diff --git a/mysql-test/r/rpl000009.result b/mysql-test/r/rpl000009.result index afd566c366c..1a1ea309ae9 100644 --- a/mysql-test/r/rpl000009.result +++ b/mysql-test/r/rpl000009.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop database if exists foo; create database foo; drop database if exists bar; diff --git a/mysql-test/r/rpl000010.result b/mysql-test/r/rpl000010.result index 49538ed148e..6b6b89d1547 100644 --- a/mysql-test/r/rpl000010.result +++ b/mysql-test/r/rpl000010.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; drop table if exists t1; create table t1 (n int not null auto_increment primary key); diff --git a/mysql-test/r/rpl000011.result b/mysql-test/r/rpl000011.result index 5d22c29bdba..bb017076822 100644 --- a/mysql-test/r/rpl000011.result +++ b/mysql-test/r/rpl000011.result @@ -1,14 +1,14 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; create table t1 (n int); insert into t1 values(1); -slave stop; -slave start; +stop slave; +start slave; insert into t1 values(2); select * from t1; n diff --git a/mysql-test/r/rpl000012.result b/mysql-test/r/rpl000012.result index 45de6502bbd..f809fa7fe74 100644 --- a/mysql-test/r/rpl000012.result +++ b/mysql-test/r/rpl000012.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1,t2,t3; create table t2 (n int); create temporary table t1 (n int); diff --git a/mysql-test/r/rpl000013.result b/mysql-test/r/rpl000013.result index 9e802da59c5..333d769baff 100644 --- a/mysql-test/r/rpl000013.result +++ b/mysql-test/r/rpl000013.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t2; create table t2(n int); create temporary table t1 (n int); diff --git a/mysql-test/r/rpl000015.result b/mysql-test/r/rpl000015.result index 7010349e5ff..78cc007c1f9 100644 --- a/mysql-test/r/rpl000015.result +++ b/mysql-test/r/rpl000015.result @@ -14,7 +14,7 @@ master_password='',master_port=MASTER_PORT; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 127.0.0.1 root MASTER_PORT 7 4 slave-relay-bin.001 4 No No 0 0 0 4 -slave start; +start slave; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 127.0.0.1 root MASTER_PORT 7 master-bin.001 79 slave-relay-bin.001 120 master-bin.001 Yes Yes 0 0 79 120 diff --git a/mysql-test/r/rpl000017.result b/mysql-test/r/rpl000017.result index bac0573165d..64e13042e9c 100644 --- a/mysql-test/r/rpl000017.result +++ b/mysql-test/r/rpl000017.result @@ -1,7 +1,7 @@ reset master; grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab'; grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab'; -slave start; +start slave; drop table if exists t1; create table t1(n int); insert into t1 values(24); diff --git a/mysql-test/r/rpl000018.result b/mysql-test/r/rpl000018.result index ba51406bba0..66dda4e29a5 100644 --- a/mysql-test/r/rpl000018.result +++ b/mysql-test/r/rpl000018.result @@ -1,5 +1,5 @@ reset slave; -slave start; +start slave; show master logs; Log_name master-bin.001 diff --git a/mysql-test/r/rpl_alter.result b/mysql-test/r/rpl_alter.result index 1dc73c6524a..0b947c0bb70 100644 --- a/mysql-test/r/rpl_alter.result +++ b/mysql-test/r/rpl_alter.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop database if exists d1; create database d1; create table d1.t1 ( n int); diff --git a/mysql-test/r/rpl_empty_master_crash.result b/mysql-test/r/rpl_empty_master_crash.result index 19e2bf28dcd..267806feb2e 100644 --- a/mysql-test/r/rpl_empty_master_crash.result +++ b/mysql-test/r/rpl_empty_master_crash.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space diff --git a/mysql-test/r/rpl_failsafe.result b/mysql-test/r/rpl_failsafe.result index 14b749fada9..d122b13adc2 100644 --- a/mysql-test/r/rpl_failsafe.result +++ b/mysql-test/r/rpl_failsafe.result @@ -1,8 +1,8 @@ -slave stop; +stop slave; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; show variables like 'rpl_recovery_rank'; Variable_name Value rpl_recovery_rank 1 @@ -17,14 +17,14 @@ rpl_recovery_rank 2 show status like 'Rpl_status'; Variable_name Value Rpl_status ACTIVE_SLAVE -slave start; +start slave; show variables like 'rpl_recovery_rank'; Variable_name Value rpl_recovery_rank 3 show status like 'Rpl_status'; Variable_name Value Rpl_status ACTIVE_SLAVE -slave start; +start slave; show variables like 'rpl_recovery_rank'; Variable_name Value rpl_recovery_rank 4 diff --git a/mysql-test/r/rpl_flush_log_loop.result b/mysql-test/r/rpl_flush_log_loop.result index da2930f30c3..a6c5ce02f4d 100644 --- a/mysql-test/r/rpl_flush_log_loop.result +++ b/mysql-test/r/rpl_flush_log_loop.result @@ -1,16 +1,16 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; change master to master_host='127.0.0.1',master_user='root', master_password='',master_port=MASTER_PORT; -slave start; -slave stop; +start slave; +stop slave; change master to master_host='127.0.0.1',master_user='root', master_password='',master_port=SLAVE_PORT; -slave start; +start slave; flush logs; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space diff --git a/mysql-test/r/rpl_get_lock.result b/mysql-test/r/rpl_get_lock.result index a8e602be03f..369fde7ef8f 100644 --- a/mysql-test/r/rpl_get_lock.result +++ b/mysql-test/r/rpl_get_lock.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; create table t1(n int); insert into t1 values(get_lock("lock",2)); select get_lock("lock",2); diff --git a/mysql-test/r/rpl_log.result b/mysql-test/r/rpl_log.result index b6e1419b466..79093a4ae7a 100644 --- a/mysql-test/r/rpl_log.result +++ b/mysql-test/r/rpl_log.result @@ -1,10 +1,10 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; -slave stop; +start slave; +stop slave; reset master; reset slave; reset master; @@ -36,9 +36,9 @@ show binlog events from 79 limit 2,1; Log_name Pos Event_type Server_id Orig_log_pos Info master-bin.001 200 Query 1 200 use `test`; insert into t1 values (NULL) flush logs; -slave start; +start slave; flush logs; -slave stop; +stop slave; create table t1 (n int); insert into t1 values (1); drop table t1; @@ -63,7 +63,7 @@ show master logs; Log_name master-bin.001 master-bin.002 -slave start; +start slave; show master logs; Log_name slave-bin.001 diff --git a/mysql-test/r/rpl_log_pos.result b/mysql-test/r/rpl_log_pos.result index 6883da76180..394208e48d7 100644 --- a/mysql-test/r/rpl_log_pos.result +++ b/mysql-test/r/rpl_log_pos.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; show master status; File Position Binlog_do_db Binlog_ignore_db master-bin.001 79 @@ -11,17 +11,17 @@ show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 127.0.0.1 root MASTER_PORT 1 master-bin.001 79 slave-relay-bin.002 120 master-bin.001 Yes Yes 0 0 79 124 change master to master_log_pos=73; -slave stop; +stop slave; change master to master_log_pos=73; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 127.0.0.1 root MASTER_PORT 1 master-bin.001 73 slave-relay-bin.001 4 master-bin.001 No No 0 0 73 4 -slave start; +start slave; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 127.0.0.1 root MASTER_PORT 1 master-bin.001 73 slave-relay-bin.001 4 master-bin.001 No Yes 0 0 73 4 change master to master_log_pos=173; -slave start; +start slave; show slave status; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space 127.0.0.1 root MASTER_PORT 1 master-bin.001 173 slave-relay-bin.001 4 master-bin.001 No Yes 0 0 173 4 @@ -33,7 +33,7 @@ drop table if exists t1; create table t1 (n int); insert into t1 values (1),(2),(3); change master to master_log_pos=79; -slave start; +start slave; select * from t1; n 1 diff --git a/mysql-test/r/rpl_mystery22.result b/mysql-test/r/rpl_mystery22.result index 5dd665fe9d5..348b3211cd5 100644 --- a/mysql-test/r/rpl_mystery22.result +++ b/mysql-test/r/rpl_mystery22.result @@ -1,20 +1,20 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; create table t1(n int auto_increment primary key); insert into t1 values (2); insert into t1 values(NULL); insert into t1 values(NULL); delete from t1 where n = 2; -slave start; -slave stop; +start slave; +stop slave; create table t2(n int); drop table t2; insert into t1 values(NULL); -slave start; +start slave; select * from t1; n 1 diff --git a/mysql-test/r/rpl_redirect.result b/mysql-test/r/rpl_redirect.result index 6103a075684..66c94a00b5f 100644 --- a/mysql-test/r/rpl_redirect.result +++ b/mysql-test/r/rpl_redirect.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; SHOW SLAVE STATUS; Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space SHOW SLAVE HOSTS; diff --git a/mysql-test/r/rpl_rotate_logs.result b/mysql-test/r/rpl_rotate_logs.result index 63d5b0b63e1..26e4e79d62b 100644 --- a/mysql-test/r/rpl_rotate_logs.result +++ b/mysql-test/r/rpl_rotate_logs.result @@ -1,13 +1,13 @@ -slave start; +start slave; Could not initialize master info structure, check permisions on master.info -slave start; +start slave; Could not initialize master info structure, check permisions on master.info change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root'; Could not initialize master info reset slave; change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root'; reset master; -slave start; +start slave; drop table if exists t1, t2, t3, t4; create temporary table temp_table (a char(80) not null); insert into temp_table values ("testing temporary tables"); @@ -39,7 +39,7 @@ insert into t2 values(1234); set insert_id=1234; insert into t2 values(NULL); set global sql_slave_skip_counter=1; -slave start; +start slave; purge master logs to 'master-bin.003'; show master logs; Log_name diff --git a/mysql-test/r/rpl_skip_error.result b/mysql-test/r/rpl_skip_error.result index 946d64ad7c5..91aae09001f 100644 --- a/mysql-test/r/rpl_skip_error.result +++ b/mysql-test/r/rpl_skip_error.result @@ -1,9 +1,9 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; drop table if exists t1; create table t1 (n int not null primary key); insert into t1 values (1); diff --git a/mysql-test/r/rpl_sporadic_master.result b/mysql-test/r/rpl_sporadic_master.result index a6a58515f0a..789c3bf2b2b 100644 --- a/mysql-test/r/rpl_sporadic_master.result +++ b/mysql-test/r/rpl_sporadic_master.result @@ -1,16 +1,16 @@ -slave stop; +stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -slave start; +start slave; create table t2(n int); create table t1(n int not null auto_increment primary key); insert into t1 values (NULL),(NULL); truncate table t1; insert into t1 values (4),(NULL); -slave stop; -slave start; +stop slave; +start slave; insert into t1 values (NULL),(NULL); flush logs; truncate table t1; diff --git a/mysql-test/t/rpl000001.test b/mysql-test/t/rpl000001.test index 0f195c65fb0..ce6897e63e1 100644 --- a/mysql-test/t/rpl000001.test +++ b/mysql-test/t/rpl000001.test @@ -12,11 +12,11 @@ select * from t1; save_master_pos; connection slave; sync_with_master; -slave stop; +stop slave; connection master; set password for root@"localhost" = password('foo'); connection slave; -slave start; +start slave; connection master; # # Give slave time to do at last one failed connect retry @@ -43,7 +43,7 @@ sync_with_master; connection master; reset master; connection slave; -slave stop; +stop slave; reset slave; connection master; @@ -62,7 +62,7 @@ enable_query_log; # Try to cause a large relay log lag on the slave connection slave; select get_lock("hold_slave",10); -slave start; +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"); @@ -100,7 +100,7 @@ wait_for_slave_to_stop; # show slave status; set global sql_slave_skip_counter=1; -slave start; +start slave; select count(*) from t1; connection master1; drop table t1; diff --git a/mysql-test/t/rpl000002.test b/mysql-test/t/rpl000002.test index caf0b4ef6d8..5fabe0d2c59 100644 --- a/mysql-test/t/rpl000002.test +++ b/mysql-test/t/rpl000002.test @@ -3,18 +3,14 @@ drop table if exists t1; create table t1 (n int auto_increment primary key); set insert_id = 2000; insert into t1 values (NULL),(NULL),(NULL); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; select * from t1; connection master; --replace_result $SLAVE_MYPORT 9999 show slave hosts; drop table t1; -save_master_pos; -connection slave; -sync_with_master; -slave stop; +sync_slave_with_master; +stop slave; connection master; drop table if exists t2; create table t2(id int auto_increment primary key, created datetime); @@ -23,11 +19,9 @@ insert into t2 set created=now(); select * from t2; save_master_pos; connection slave; -slave start; +start slave; sync_with_master; select * from t2; connection master; drop table t2; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl000011.test b/mysql-test/t/rpl000011.test index d75937e3f81..dc84741694c 100644 --- a/mysql-test/t/rpl000011.test +++ b/mysql-test/t/rpl000011.test @@ -2,20 +2,14 @@ source include/master-slave.inc; drop table if exists t1; create table t1 (n int); insert into t1 values(1); -save_master_pos; -connection slave; -sync_with_master; -slave stop; -slave start; +sync_slave_with_master; +stop slave; +start slave; connection master; insert into t1 values(2); -save_master_pos; -connection slave; #let slave catch up -sync_with_master; +sync_slave_with_master; select * from t1; connection master; drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl000015.test b/mysql-test/t/rpl000015.test index c42e14699c5..37155d33f08 100644 --- a/mysql-test/t/rpl000015.test +++ b/mysql-test/t/rpl000015.test @@ -18,7 +18,7 @@ eval change master to master_host='127.0.0.1',master_user='root', master_password='',master_port=$MASTER_MYPORT; --replace_result $MASTER_MYPORT MASTER_PORT show slave status; -slave start; +start slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT show slave status; @@ -26,12 +26,8 @@ connection master; drop table if exists t1; create table t1 (n int); insert into t1 values (10),(45),(90); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; select * from t1; connection master; drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl000017.test b/mysql-test/t/rpl000017.test index f346ca39ca0..3bff9b4cbd8 100644 --- a/mysql-test/t/rpl000017.test +++ b/mysql-test/t/rpl000017.test @@ -5,17 +5,13 @@ reset master; grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab'; grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab'; connection slave; -slave start; +start slave; connection master; drop table if exists t1; create table t1(n int); insert into t1 values(24); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; select * from t1; connection master; drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl000018.test b/mysql-test/t/rpl000018.test index 291b482b912..f82f365a35e 100644 --- a/mysql-test/t/rpl000018.test +++ b/mysql-test/t/rpl000018.test @@ -10,18 +10,14 @@ server_stop master; server_start master; connection slave; reset slave; -slave start; +start slave; connection master; show master logs; drop table if exists t1; create table t1(n int); insert into t1 values (3351); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; select * from t1; connection master; drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl_failsafe.test b/mysql-test/t/rpl_failsafe.test index 866efbce5bf..ae61b061153 100644 --- a/mysql-test/t/rpl_failsafe.test +++ b/mysql-test/t/rpl_failsafe.test @@ -7,18 +7,16 @@ show variables like 'rpl_recovery_rank'; show status like 'Rpl_status'; create table t1(n int); drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; show variables like 'rpl_recovery_rank'; show status like 'Rpl_status'; connection slave_sec; -slave start; +start slave; sync_with_master; show variables like 'rpl_recovery_rank'; show status like 'Rpl_status'; connection slave_ter; -slave start; +start slave; sync_with_master; show variables like 'rpl_recovery_rank'; show status like 'Rpl_status'; diff --git a/mysql-test/t/rpl_flush_log_loop.test b/mysql-test/t/rpl_flush_log_loop.test index c68fbb7111a..62bcf2c8b33 100644 --- a/mysql-test/t/rpl_flush_log_loop.test +++ b/mysql-test/t/rpl_flush_log_loop.test @@ -7,13 +7,13 @@ connection slave; --replace_result $MASTER_MYPORT MASTER_PORT eval change master to master_host='127.0.0.1',master_user='root', master_password='',master_port=$MASTER_MYPORT; -slave start; +start slave; connection master; -slave stop; +stop slave; --replace_result $SLAVE_MYPORT SLAVE_PORT eval change master to master_host='127.0.0.1',master_user='root', master_password='',master_port=$SLAVE_MYPORT; -slave start; +start slave; flush logs; sleep 5; --replace_result $SLAVE_MYPORT SLAVE_PORT diff --git a/mysql-test/t/rpl_log.test b/mysql-test/t/rpl_log.test index 85782e78142..604b076f433 100644 --- a/mysql-test/t/rpl_log.test +++ b/mysql-test/t/rpl_log.test @@ -2,7 +2,7 @@ source include/master-slave.inc; #clean up slave binlogs connection slave; -slave stop; +stop slave; reset master; reset slave; let $VERSION=`select version()`; @@ -26,10 +26,10 @@ flush logs; save_master_pos; connection slave; -slave start; +start slave; sync_with_master; flush logs; -slave stop; +stop slave; connection master; # Create some entries for second log @@ -43,7 +43,7 @@ show binlog events in 'master-bin.002'; show master logs; save_master_pos; connection slave; -slave start; +start slave; sync_with_master; show master logs; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT $VERSION VERSION diff --git a/mysql-test/t/rpl_log_pos.test b/mysql-test/t/rpl_log_pos.test index b96d32c7fca..d320796edd3 100644 --- a/mysql-test/t/rpl_log_pos.test +++ b/mysql-test/t/rpl_log_pos.test @@ -3,25 +3,23 @@ # source include/master-slave.inc; show master status; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT show slave status; change master to master_log_pos=73; sleep 5; -slave stop; +stop slave; change master to master_log_pos=73; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT show slave status; -slave start; +start slave; sleep 5; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT show slave status; change master to master_log_pos=173; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT -slave start; +start slave; sleep 2; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT show slave status; @@ -34,11 +32,9 @@ insert into t1 values (1),(2),(3); save_master_pos; connection slave; change master to master_log_pos=79; -slave start; +start slave; sync_with_master; select * from t1; connection master; drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl_mystery22.test b/mysql-test/t/rpl_mystery22.test index 5280cb360dd..d49f1a210f4 100644 --- a/mysql-test/t/rpl_mystery22.test +++ b/mysql-test/t/rpl_mystery22.test @@ -4,9 +4,7 @@ source include/master-slave.inc; # first, cause a duplicate key problem on the slave create table t1(n int auto_increment primary key); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; insert into t1 values (2); connection master; insert into t1 values(NULL); @@ -16,11 +14,11 @@ connection slave; sleep 3; # there is no way around this sleep - we have to wait until # the slave tries to run the query, fails and aborts slave thread delete from t1 where n = 2; -slave start; +start slave; sync_with_master; #now the buggy slave would be confused on the offset but it can replicate #in order to make it break, we need to stop/start the slave one more time -slave stop; +stop slave; connection master; # to be able to really confuse the slave, we need some non-auto-increment # events in the log @@ -29,7 +27,7 @@ drop table t2; insert into t1 values(NULL); save_master_pos; connection slave; -slave start; +start slave; #now the truth comes out - if the slave is buggy, it will never sync because #the slave thread is not able to read events sync_with_master; @@ -37,7 +35,5 @@ select * from t1; #clean up connection master; drop table t1; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl_rotate_logs.test b/mysql-test/t/rpl_rotate_logs.test index 5d8f150cdea..95bc36643e3 100644 --- a/mysql-test/t/rpl_rotate_logs.test +++ b/mysql-test/t/rpl_rotate_logs.test @@ -15,10 +15,10 @@ system cat /dev/null > var/slave-data/master.info; system chmod 000 var/slave-data/master.info; connection slave; --error 1201 -slave start; +start slave; system chmod 600 var/slave-data/master.info; --error 1201 -slave start; +start slave; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT # Will get error 13 on Unix systems becasue file is not readable !eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root'; @@ -28,7 +28,7 @@ eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master connection master; reset master; connection slave; -slave start; +start slave; connection master; drop table if exists t1, t2, t3, t4; @@ -40,9 +40,7 @@ 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'); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT show slave status; select * from t1; @@ -55,9 +53,7 @@ flush logs; show master logs; create table t3 select * from temp_table; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; select * from t3; connection master; @@ -83,21 +79,17 @@ wait_for_slave_to_stop; #restart slave skipping one event set global sql_slave_skip_counter=1; -slave start; +start slave; connection master; -save_master_pos; #let slave catch up -connection slave; -sync_with_master; +sync_slave_with_master; connection master; purge master logs to 'master-bin.003'; show master logs; insert into t2 values (65); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT show slave status; select * from t2; @@ -125,8 +117,8 @@ show master logs; show master status; save_master_pos; connection slave; -#slave stop; -#slave start; +#stop slave; +#start slave; sync_with_master; select * from t4; @@ -140,6 +132,4 @@ unlock tables; #clean up connection master; drop table if exists t1,t2,t3,t4; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/mysql-test/t/rpl_sporadic_master.test b/mysql-test/t/rpl_sporadic_master.test index e59b93b4475..b24901c62a9 100644 --- a/mysql-test/t/rpl_sporadic_master.test +++ b/mysql-test/t/rpl_sporadic_master.test @@ -9,22 +9,16 @@ insert into t1 values (NULL),(NULL); truncate table t1; # We have to use 4 in the following to make this test work with all table types insert into t1 values (4),(NULL); -save_master_pos; -connection slave; -sync_with_master; -slave stop; -slave start; +sync_slave_with_master; +stop slave; +start slave; connection master; insert into t1 values (NULL),(NULL); flush logs; truncate table t1; insert into t1 values (10),(NULL),(NULL),(NULL),(NULL),(NULL); -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; select * from t1; connection master; drop table t1,t2; -save_master_pos; -connection slave; -sync_with_master; +sync_slave_with_master; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 42584ed7440..e839956d0f2 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1413,14 +1413,14 @@ opt_to: | AS {}; slave: - SLAVE START_SYM slave_thread_opts + START_SYM SLAVE slave_thread_opts { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_START; lex->type = 0; } | - SLAVE STOP_SYM slave_thread_opts + STOP_SYM SLAVE slave_thread_opts { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_STOP; From 59c72048fbbd098cb7090f37f6449bfb8ca11b6d Mon Sep 17 00:00:00 2001 From: "nick@mysql.com" <> Date: Thu, 24 Oct 2002 18:32:42 -0600 Subject: [PATCH 4/4] changed syntax from SHOW MASTER LOGS to SHOW BINARY LOGS --- mysql-test/r/rpl000018.result | 2 +- mysql-test/r/rpl_log.result | 4 ++-- mysql-test/r/rpl_rotate_logs.result | 6 +++--- mysql-test/t/rpl000018.test | 2 +- mysql-test/t/rpl_log.test | 4 ++-- mysql-test/t/rpl_rotate_logs.test | 6 +++--- sql/sql_yacc.yy | 16 +++++++++++++++- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/mysql-test/r/rpl000018.result b/mysql-test/r/rpl000018.result index 66dda4e29a5..cb93993a6b3 100644 --- a/mysql-test/r/rpl000018.result +++ b/mysql-test/r/rpl000018.result @@ -1,6 +1,6 @@ reset slave; start slave; -show master logs; +show binary logs; Log_name master-bin.001 master-bin.002 diff --git a/mysql-test/r/rpl_log.result b/mysql-test/r/rpl_log.result index 79093a4ae7a..764d8eaeaa4 100644 --- a/mysql-test/r/rpl_log.result +++ b/mysql-test/r/rpl_log.result @@ -59,12 +59,12 @@ Log_name Pos Event_type Server_id Orig_log_pos Info master-bin.002 4 Query 1 4 use `test`; create table t1 (n int) master-bin.002 62 Query 1 62 use `test`; insert into t1 values (1) master-bin.002 122 Query 1 122 use `test`; drop table t1 -show master logs; +show binary logs; Log_name master-bin.001 master-bin.002 start slave; -show master logs; +show binary logs; Log_name slave-bin.001 slave-bin.002 diff --git a/mysql-test/r/rpl_rotate_logs.result b/mysql-test/r/rpl_rotate_logs.result index 26e4e79d62b..42733915d56 100644 --- a/mysql-test/r/rpl_rotate_logs.result +++ b/mysql-test/r/rpl_rotate_logs.result @@ -25,7 +25,7 @@ drop table if exists t2; create table t2(m int not null auto_increment primary key); insert into t2 values (34),(67),(123); flush logs; -show master logs; +show binary logs; Log_name master-bin.001 master-bin.002 @@ -41,7 +41,7 @@ insert into t2 values(NULL); set global sql_slave_skip_counter=1; start slave; purge master logs to 'master-bin.003'; -show master logs; +show binary logs; Log_name master-bin.003 insert into t2 values (65); @@ -60,7 +60,7 @@ insert into temp_table values ("testing temporary tables part 2"); drop table if exists t3; create table t3 (n int); create table t4 select * from temp_table; -show master logs; +show binary logs; Log_name master-bin.003 master-bin.004 diff --git a/mysql-test/t/rpl000018.test b/mysql-test/t/rpl000018.test index f82f365a35e..e992f7938eb 100644 --- a/mysql-test/t/rpl000018.test +++ b/mysql-test/t/rpl000018.test @@ -12,7 +12,7 @@ connection slave; reset slave; start slave; connection master; -show master logs; +show binary logs; drop table if exists t1; create table t1(n int); insert into t1 values (3351); diff --git a/mysql-test/t/rpl_log.test b/mysql-test/t/rpl_log.test index 604b076f433..729f8b06e18 100644 --- a/mysql-test/t/rpl_log.test +++ b/mysql-test/t/rpl_log.test @@ -40,12 +40,12 @@ drop table t1; --replace_result $VERSION VERSION show binlog events; show binlog events in 'master-bin.002'; -show master logs; +show binary logs; save_master_pos; connection slave; start slave; sync_with_master; -show master logs; +show binary logs; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT $VERSION VERSION show binlog events in 'slave-bin.001' from 4; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT $VERSION VERSION diff --git a/mysql-test/t/rpl_rotate_logs.test b/mysql-test/t/rpl_rotate_logs.test index 95bc36643e3..ad584c334b8 100644 --- a/mysql-test/t/rpl_rotate_logs.test +++ b/mysql-test/t/rpl_rotate_logs.test @@ -50,7 +50,7 @@ drop table if exists t2; create table t2(m int not null auto_increment primary key); insert into t2 values (34),(67),(123); flush logs; -show master logs; +show binary logs; create table t3 select * from temp_table; sync_slave_with_master; @@ -87,7 +87,7 @@ connection master; sync_slave_with_master; connection master; purge master logs to 'master-bin.003'; -show master logs; +show binary logs; insert into t2 values (65); sync_slave_with_master; --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT @@ -113,7 +113,7 @@ while ($1) } enable_query_log; create table t4 select * from temp_table; -show master logs; +show binary logs; show master status; save_master_pos; connection slave; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index e839956d0f2..6786bdf9772 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1426,6 +1426,20 @@ slave: lex->sql_command = SQLCOM_SLAVE_STOP; lex->type = 0; }; + | + SLAVE START_SYM slave_thread_opts + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_SLAVE_START; + lex->type = 0; + } + | + SLAVE STOP_SYM slave_thread_opts + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_SLAVE_STOP; + lex->type = 0; + }; slave_thread_opts: slave_thread_opt @@ -2961,7 +2975,7 @@ show_param: Lex->mi.pos = $12; Lex->mi.server_id = $16; } - | MASTER_SYM LOGS_SYM + | BINARY LOGS_SYM { Lex->sql_command = SQLCOM_SHOW_BINLOGS; }