rpl_ignore_grant.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # Test that GRANT is not replicated to the slave
  2. # when --replicate-wild-ignore-table=mysql.%
  3. # In BUG#980, this test would _randomly_ fail.
  4. source include/master-slave.inc;
  5. # do not be influenced by other tests.
  6. connection master;
  7. delete from mysql.user where user=_binary'rpl_ignore_grant';
  8. delete from mysql.db where user=_binary'rpl_ignore_grant';
  9. flush privileges;
  10. save_master_pos;
  11. connection slave;
  12. sync_with_master;
  13. # as these DELETE were not replicated, we need to do them manually on the
  14. # slave.
  15. delete from mysql.user where user=_binary'rpl_ignore_grant';
  16. delete from mysql.db where user=_binary'rpl_ignore_grant';
  17. flush privileges;
  18. # test non-replication of GRANT
  19. connection master;
  20. grant select on *.* to rpl_ignore_grant@localhost;
  21. grant drop on test.* to rpl_ignore_grant@localhost;
  22. show grants for rpl_ignore_grant@localhost;
  23. save_master_pos;
  24. connection slave;
  25. sync_with_master;
  26. --error 1141 #("no such grant for user")
  27. show grants for rpl_ignore_grant@localhost;
  28. # check it another way
  29. select count(*) from mysql.user where user=_binary'rpl_ignore_grant';
  30. select count(*) from mysql.db where user=_binary'rpl_ignore_grant';
  31. # test non-replication of SET PASSWORD
  32. # first force creation of the user on slave (because as the user does not exist
  33. # on slave, the SET PASSWORD may be replicated but silently do nothing; this is
  34. # not what we want; we want it to be not-replicated).
  35. grant select on *.* to rpl_ignore_grant@localhost;
  36. connection master;
  37. set password for rpl_ignore_grant@localhost=password("does it work?");
  38. save_master_pos;
  39. connection slave;
  40. sync_with_master;
  41. select password<>_binary'' from mysql.user where user=_binary'rpl_ignore_grant';
  42. # clear what we have done, to not influence other tests.
  43. connection master;
  44. delete from mysql.user where user=_binary'rpl_ignore_grant';
  45. delete from mysql.db where user=_binary'rpl_ignore_grant';
  46. flush privileges;
  47. save_master_pos;
  48. connection slave;
  49. sync_with_master;
  50. delete from mysql.user where user=_binary'rpl_ignore_grant';
  51. delete from mysql.db where user=_binary'rpl_ignore_grant';
  52. flush privileges;
  53. # End of 4.1 tests