mirror of
https://github.com/MariaDB/server.git
synced 2025-07-04 01:23:45 +03:00
DURING INNODB RECOVERY Problem: ======= The connection 'master' is dropped by mysqltest after rpl_end.inc. At this point, dropping temporary tables at the connection 'master' are not synced at slave. So, the temporary tables replicated from master remain on slave leading to an inconsistent close of the test. The following test thus complains about the presence of temporary table(s) left over from the previous test. Fix: === - Put explicit drop commands in replication tests so that the temporary tables are dropped at slave as well. - Added the check for Slave_open_temp_tables in mtr_check.sql to warn about the remaining temporary table, if any, at the close of a test.
82 lines
2.2 KiB
Plaintext
82 lines
2.2 KiB
Plaintext
include/master-slave.inc
|
|
[connection master]
|
|
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
|
create table t1 (word char(20) not null);
|
|
load data infile '../../std_data/words.dat' into table t1;
|
|
load data local infile 'MYSQL_TEST_DIR/std_data/words.dat' into table t1;
|
|
select * from t1 limit 10;
|
|
word
|
|
Aarhus
|
|
Aaron
|
|
Ababa
|
|
aback
|
|
abaft
|
|
abandon
|
|
abandoned
|
|
abandoning
|
|
abandonment
|
|
abandons
|
|
stop slave;
|
|
set password for root@"localhost" = password('foo');
|
|
start slave;
|
|
set password for root@"localhost" = password('');
|
|
create table t3(n int);
|
|
insert into t3 values(1),(2);
|
|
select * from t3;
|
|
n
|
|
1
|
|
2
|
|
select sum(length(word)) from t1;
|
|
sum(length(word))
|
|
1022
|
|
drop table t1,t3;
|
|
create table t1 (n int) engine=myisam;
|
|
reset master;
|
|
stop slave;
|
|
reset slave;
|
|
lock tables t1 read;
|
|
start slave;
|
|
include/sync_slave_io_with_master.inc
|
|
unlock tables;
|
|
create table t2(id int);
|
|
insert into t2 values(connection_id());
|
|
create temporary table t3(n int);
|
|
insert into t3 select get_lock('crash_lock%20C', 1) from t2;
|
|
update t1 set n = n + get_lock('crash_lock%20C', 2);
|
|
select (@id := id) - id from t2;
|
|
(@id := id) - id
|
|
0
|
|
kill @id;
|
|
drop table t2;
|
|
drop temporary table t3;
|
|
Got one of the listed errors
|
|
include/wait_for_slave_sql_error_and_skip.inc [errno=1053]
|
|
select count(*) from t1;
|
|
count(*)
|
|
5000
|
|
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"));
|
|
Warnings:
|
|
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
|
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
|
select select_priv,user from mysql.user where user = _binary'blafasel2';
|
|
select_priv user
|
|
N blafasel2
|
|
update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
|
|
select select_priv,user from mysql.user where user = _binary'blafasel2';
|
|
select_priv user
|
|
Y blafasel2
|
|
select n from t1;
|
|
n
|
|
3456
|
|
select select_priv,user from mysql.user where user = _binary'blafasel2';
|
|
select_priv user
|
|
Y blafasel2
|
|
drop table t1;
|
|
delete from mysql.user where user="blafasel2";
|
|
include/rpl_end.inc
|