mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	 41865cf3a6
			
		
	
	41865cf3a6
	
	
	
		
			
			replicate-*-table rules which exclude 'mysql' tables (e.g. replicate-wild-ignore-table=mysql.%). This was already the behaviour for GRANT/REVOKE, I'm extending it to SET PASSWORD because it seems very logical (the contrary seems illogical). 2 new tests: - one to test if GRANT and SET PASSWORD are replicated - one to test if they are not replicated if replicate-wild-ignore-table=mysql.% The 2nd is also a testcase for BUG#980.
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Test that GRANT is not replicated to the slave
 | |
| # when --replicate-wild-ignore-table=mysql.%
 | |
| # In BUG#980, this test would _randomly_ fail.
 | |
| 
 | |
| source include/master-slave.inc;
 | |
| 
 | |
| # do not be influenced by other tests.
 | |
| connection master;
 | |
| delete from mysql.user where user='rpl_ignore_grant';
 | |
| delete from mysql.db where user='rpl_ignore_grant';
 | |
| flush privileges;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| # as these DELETE were not replicated, we need to do them manually on the
 | |
| # slave.
 | |
| delete from mysql.user where user='rpl_ignore_grant';
 | |
| delete from mysql.db where user='rpl_ignore_grant';
 | |
| flush privileges;
 | |
| 
 | |
| # test non-replication of GRANT
 | |
| connection master;
 | |
| grant select on *.* to rpl_ignore_grant@localhost;
 | |
| grant drop on test.* to rpl_ignore_grant@localhost;
 | |
| show grants for rpl_ignore_grant@localhost;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| --error 1141 #("no such grant for user")
 | |
| show grants for rpl_ignore_grant@localhost;
 | |
| # check it another way
 | |
| select count(*) from mysql.user where user='rpl_ignore_grant';
 | |
| select count(*) from mysql.db where user='rpl_ignore_grant';
 | |
| 
 | |
| # test non-replication of SET PASSWORD
 | |
| # first force creation of the user on slave (because as the user does not exist
 | |
| # on slave, the SET PASSWORD may be replicated but silently do nothing; this is
 | |
| # not what we want; we want it to be not-replicated).
 | |
| grant select on *.* to rpl_ignore_grant@localhost;
 | |
| connection master;
 | |
| set password for rpl_ignore_grant@localhost=password("does it work?");
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select password<>'' from mysql.user where user='rpl_ignore_grant';
 | |
| 
 | |
| # clear what we have done, to not influence other tests.
 | |
| connection master;
 | |
| delete from mysql.user where user='rpl_ignore_grant';
 | |
| delete from mysql.db where user='rpl_ignore_grant';
 | |
| flush privileges;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| delete from mysql.user where user='rpl_ignore_grant';
 | |
| delete from mysql.db where user='rpl_ignore_grant';
 | |
| flush privileges;
 |