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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
#
# 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
--source include/have_hostname_cache.inc
# Enforce a clean state
--source ../include/wait_for_pfs_thread_count.inc
--source ../include/hostcache_set_state.inc
--disable_cursor_protocol
select @@global.max_connect_errors into @saved_max_connect_errors;
--enable_cursor_protocol
set global max_connect_errors = 3;
create user 'root'@'santa.claus.ipv4.example.com';
grant select on test.* to 'root'@'santa.claus.ipv4.example.com';
create user 'quota'@'santa.claus.ipv4.example.com';
grant select on test.* to 'quota'@'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 @saved_dbug = @@GLOBAL.debug_dbug;
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4,native_password_bad_reply";
--disable_query_log
--error ER_HANDSHAKE_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_HANDSHAKE_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_HANDSHAKE_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_HANDSHAKE_ERROR
connect (con3a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_HANDSHAKE_ERROR
connect (con3b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--connection default
set global debug_dbug= "-d,native_password_bad_reply";
--disable_query_log
connect (con4,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Valid connection should reset SUM_CONNECT_ERROR counter" as message;
--disconnect con4
--enable_query_log
--connection default
set global debug_dbug= "+d,native_password_bad_reply";
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_HANDSHAKE_ERROR
connect (con5a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_HANDSHAKE_ERROR
connect (con5b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log
--connection default
--source ../include/hostcache_dump.inc
--disable_query_log
--error ER_HANDSHAKE_ERROR
connect (con5c,"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 (con5d,"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 (con5e,"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';
revoke select on test.* from 'quota'@'santa.claus.ipv4.example.com';
drop user 'quota'@'santa.claus.ipv4.example.com';
set global max_connect_errors = @saved_max_connect_errors;
SET @@GLOBAL.debug_dbug = @saved_dbug;
|