1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#
# Tests for the performance_schema host_cache.
#
# Simulate failures from client / server protocol:
# - reported in COUNT_HANDSHAKE_ERRORS
# aud further causes blocking errors:
# - reported in SUM_CONNECT_ERRORS
# - reported in COUNT_HOST_BLOCKED_ERRORS
--source include/not_embedded.inc
--source include/have_debug.inc
--source include/have_perfschema.inc
flush status;
flush hosts;
flush user_resources;
select @@global.debug;
select @@global.max_connect_errors;
select @@global.max_connect_errors into @saved_max_connect_errors;
set global max_connect_errors = 2;
grant select on test.* to 'root'@'santa.claus.ipv4.example.com';
connect (con1,"127.0.0.1",root,,test,$MASTER_MYPORT,);
select "Con1 is alive";
select current_user();
disconnect con1;
--connection default
set global debug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4,native_password_bad_reply";
--disable_query_log
--error ER_ACCESS_DENIED_ERROR
connect (con2a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_ACCESS_DENIED_ERROR
connect (con2b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_ACCESS_DENIED_ERROR
connect (con2c,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_HOST_IS_BLOCKED
connect (con2d,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_HOST_IS_BLOCKED
connect (con2e,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
# Now that the host is blocked, check that flush works
flush hosts;
--disable_query_log
--error ER_ACCESS_DENIED_ERROR
connect (con2c,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
revoke select on test.* from 'root'@'santa.claus.ipv4.example.com';
drop user 'root'@'santa.claus.ipv4.example.com';
set global max_connect_errors = @saved_max_connect_errors;
set global debug= default;
|