mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
750c4022f2
The problem is when create/rename/drop users, the statement was logged regardless of error, even if no data has been changed, the statement was logged. After this patch, create/rename/drop users don't write the binlog if the statement makes no changes, if the statement does make any changes, log the statement with possible error code. This patch is based on the patch for BUG#29749, which is not pushed
42 lines
2.2 KiB
Text
42 lines
2.2 KiB
Text
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;
|
|
start slave;
|
|
reset master;
|
|
delete from mysql.user where Host='fakehost';
|
|
create user 'foo'@'fakehost';
|
|
create user 'foo'@'fakehost', 'bar'@'fakehost';
|
|
ERROR HY000: Operation CREATE USER failed for 'foo'@'fakehost'
|
|
create user 'foo'@'fakehost', 'bar'@'fakehost';
|
|
ERROR HY000: Operation CREATE USER failed for 'foo'@'fakehost','bar'@'fakehost'
|
|
select Host,User from mysql.user where Host='fakehost';
|
|
Host User
|
|
fakehost bar
|
|
fakehost foo
|
|
rename user 'foo'@'fakehost' to 'foofoo'@'fakehost';
|
|
rename user 'not_exist_user1'@'fakehost' to 'foobar'@'fakehost', 'bar'@'fakehost' to 'barbar'@'fakehost';
|
|
ERROR HY000: Operation RENAME USER failed for 'not_exist_user1'@'fakehost'
|
|
rename user 'not_exist_user1'@'fakehost' to 'foobar'@'fakehost', 'not_exist_user2'@'fakehost' to 'barfoo'@'fakehost';
|
|
ERROR HY000: Operation RENAME USER failed for 'not_exist_user1'@'fakehost','not_exist_user2'@'fakehost'
|
|
select Host,User from mysql.user where Host='fakehost';
|
|
Host User
|
|
fakehost barbar
|
|
fakehost foofoo
|
|
drop user 'foofoo'@'fakehost';
|
|
drop user 'not_exist_user1'@'fakehost', 'barbar'@'fakehost';
|
|
ERROR HY000: Operation DROP USER failed for 'not_exist_user1'@'fakehost'
|
|
drop user 'not_exist_user1'@'fakehost', 'not_exist_user2'@'fakehost';
|
|
ERROR HY000: Operation DROP USER failed for 'not_exist_user1'@'fakehost','not_exist_user2'@'fakehost'
|
|
select Host,User from mysql.user where Host='fakehost';
|
|
Host User
|
|
show binlog events from 98;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 98 Query 1 # use `test`; delete from mysql.user where Host='fakehost'
|
|
master-bin.000001 205 Query 1 # use `test`; create user 'foo'@'fakehost'
|
|
master-bin.000001 296 Query 1 # use `test`; create user 'foo'@'fakehost', 'bar'@'fakehost'
|
|
master-bin.000001 405 Query 1 # use `test`; rename user 'foo'@'fakehost' to 'foofoo'@'fakehost'
|
|
master-bin.000001 519 Query 1 # use `test`; rename user 'not_exist_user1'@'fakehost' to 'foobar'@'fakehost', 'bar'@'fakehost' to 'barbar'@'fakehost'
|
|
master-bin.000001 686 Query 1 # use `test`; drop user 'foofoo'@'fakehost'
|
|
master-bin.000001 778 Query 1 # use `test`; drop user 'not_exist_user1'@'fakehost', 'barbar'@'fakehost'
|