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 164 165 166 167 168 169 170 171
|
#==============================================================================
# Establish the level of IPV6 support
#==============================================================================
#==============================================================================
# Get hostname, port number
#==============================================================================
SELECT @@hostname INTO @MY_HOSTNAME;
SELECT @@port INTO @MY_MASTER_PORT;
#==============================================================================
# 1.0 Get the default connection object_instance_begin, thread id and verify
# the expected number of client connections.
#==============================================================================
#
# 1.1 Confirm only one client connection
#
SELECT COUNT(*) INTO @my_client_connections
FROM performance_schema.socket_instances
WHERE EVENT_NAME LIKE "%client_connection%";
#
# 1.2 Get the default THREAD_ID;
#
SELECT THREAD_ID INTO @my_thread_id
FROM performance_schema.threads
WHERE PROCESSLIST_ID = CONNECTION_ID();
#
# 1.3 Get the default OBJECT_INSTANCE_BEGIN
#
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
FROM performance_schema.socket_instances
WHERE THREAD_ID = @my_thread_id;
#==============================================================================
# 2.0 ESTABLISH TCP/IP CONNECTION 1
# Connect with IP = localhost (127.0.0.1 or ::1)
#==============================================================================
#
# 2.1 Get the connection thread id
#
SELECT THREAD_ID INTO @my_thread_id
FROM performance_schema.threads
WHERE PROCESSLIST_ID = CONNECTION_ID();
#
# 2.2 Get the connection object instance begin
#
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
FROM performance_schema.socket_instances
WHERE THREAD_ID = @my_thread_id;
#
# 2.3 Get the connection port
#
SELECT PORT INTO @my_port
FROM performance_schema.socket_instances
WHERE THREAD_ID = @my_thread_id;
#
# 2.4 Verify that the connection is 127.0.0.1 or ::1
#
SELECT COUNT(*) = 1 AS 'Expect 1'
FROM performance_schema.socket_instances
WHERE EVENT_NAME LIKE '%client_connection%'
AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1')
AND PORT= @con1_port
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
Expect 1
1
#
# 2.5 Verify that the same connection is in the summary instance table
#
SELECT COUNT(*) = 1 AS 'Expect 1'
FROM performance_schema.socket_summary_by_instance
WHERE EVENT_NAME LIKE '%client_connection%'
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
Expect 1
1
#
# Switch to connection default
#
connection default;
#==============================================================================
# 3.0 ESTABLISH TCP/IP CONNECTION 2
# Connect with IP = localhost (127.0.0.1 or ::1)
#==============================================================================
#
# 3.1 Get the connection thread id
#
SELECT THREAD_ID INTO @my_thread_id
FROM performance_schema.threads
WHERE PROCESSLIST_ID = CONNECTION_ID();
#
# 3.2 Get the connection object instance begin
#
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
FROM performance_schema.socket_instances
WHERE THREAD_ID = @my_thread_id;
#
# 3.3 Get the connection port
#
SELECT PORT INTO @my_port
FROM performance_schema.socket_instances
WHERE THREAD_ID = @my_thread_id;
#
# 3.4 Verify that the connection is 127.0.0.1 or ::1
#
SELECT COUNT(*) = 1 AS 'Expect 1'
FROM performance_schema.socket_instances
WHERE EVENT_NAME LIKE '%client_connection%'
AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1')
AND PORT= @con2_port
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
Expect 1
1
#
# 3.5 Verify that the same connection is in the summary instance table
#
SELECT COUNT(*) = 1 AS 'Expect 1'
FROM performance_schema.socket_summary_by_instance
WHERE EVENT_NAME LIKE '%client_connection%'
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
Expect 1
1
#
# 3.6 Verify that the connection is 127.0.0.1 or ::1
#
SELECT COUNT(*) = 1 AS 'Expect 1'
FROM performance_schema.socket_instances
WHERE EVENT_NAME LIKE '%client_connection%'
AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1')
AND PORT= @con2_port
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
Expect 1
1
#==============================================================================
# 4.0 Verify both connections exist in the instance tables
#==============================================================================
connection default;
#
# 4.1 Verify that there are two TCP/IP connections in the socket instance table
#
SELECT COUNT(*) = 2 AS 'Expect 2'
FROM performance_schema.socket_instances
WHERE EVENT_NAME LIKE '%client_connection%'
AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin
AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1');
Expect 2
1
#
# 4.2 Verify that there are two TCP/IP connections in the summary instance table
#
SELECT COUNT(*) = 2 AS 'Expect 2'
FROM performance_schema.socket_summary_by_instance
WHERE EVENT_NAME LIKE '%client_connection%'
AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin;
Expect 2
1
#==============================================================================
# 5.0 Drop the client connections
#==============================================================================
# 5.1 Disconnect con1
connection con1;
disconnect con1;
# 5.2 Disconnect con2
connection con2;
disconnect con2;
connection default;
#==============================================================================
# 6.0 Verify sockets were removed from the instance tables
#==============================================================================
#
# 6.1 Verify that there are no TCP/IP connections in the socket instance table
#
#
# 6.2 Verify that there are no TCP/IP connections in the summary instance table
#
|