################################################################################ # Base test to verify the basic TLS 1.3 support on Group Replication. # # Test: # 0. The test requires two servers: M1 and M2. # 1. Setup the first member (M1) with a recovery user that requires TLS 1.3. # 2. Add some data and bootstrap start a group on M1. # 3. Configure joining member (M2) to use SSL options on recovery. Start GR on # M2. Check the data is there. # 4. Clean up. ################################################################################ --source include/have_tlsv13.inc --source include/have_group_replication_plugin.inc --let $rpl_skip_group_replication_start= 1 --source include/group_replication.inc --echo # --echo # Setup the first member with a recovery user that requires TLS 1.3 --echo # --let $rpl_connection_name= server1 --source include/rpl_connection.inc # create a user for replication that requires ssl encryption SET SESSION sql_log_bin=0; CREATE USER 'rec_ssl_user'@'%' REQUIRE SSL; GRANT replication slave ON *.* TO 'rec_ssl_user'@'%'; SET SESSION sql_log_bin=1; SET @tls_version_saved= @@GLOBAL.tls_version; SET GLOBAL tls_version='TLSv1.3'; ALTER INSTANCE RELOAD TLS; --echo # --echo # Add some data and start the member --echo # CREATE TABLE t1 (c1 INT NOT NULL PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); --source include/start_and_bootstrap_group_replication.inc --echo # --echo # Configure a joining member to use SSL options on recovery and start it --echo # --let $rpl_connection_name= server2 --source include/rpl_connection.inc --disable_warnings CHANGE REPLICATION SOURCE TO SOURCE_USER="rec_ssl_user" FOR CHANNEL "group_replication_recovery"; --enable_warnings SET @group_replication_recovery_use_ssl_saved= @@GLOBAL.group_replication_recovery_use_ssl; SET GLOBAL group_replication_recovery_use_ssl=1; --source include/start_group_replication.inc --echo # --echo # Check the data is there --echo # --let $assert_text= On the recovered member, the table should exist and have 1 elements; --let $assert_cond= [select count(*) from t1] = 1; --source include/assert.inc --echo # --echo # Clean up --echo # SET @@GLOBAL.group_replication_recovery_use_ssl= @group_replication_recovery_use_ssl_saved; --let $rpl_connection_name= server1 --source include/rpl_connection.inc SET @@GLOBAL.tls_version= @tls_version_saved; ALTER INSTANCE RELOAD TLS; SET SESSION sql_log_bin=0; DROP USER 'rec_ssl_user'; SET SESSION sql_log_bin=1; DROP TABLE t1; --source include/group_replication_end.inc