Server IP : 104.21.38.3 / Your IP : 162.158.106.203 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/mysql-test/suite/group_replication/r/ |
Upload File : |
include/group_replication.inc [rpl_server_count=3] Warnings: Note #### Sending passwords in plain text without SSL/TLS is extremely insecure. Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. [connection server1] # # Setup a new 2 member group # include/start_and_bootstrap_group_replication.inc SET SESSION sql_log_bin= 0; CALL mtr.add_suppression("Cannot replicate to server with server_uuid*"); SET SESSION sql_log_bin= 1; CREATE TABLE t1 (c1 INT NOT NULL PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); include/start_group_replication.inc # # Purge member 1 binlog after a flush and create a replication user # FLUSH BINARY LOGS; include/stop_dump_threads.inc include/wait_for_file_closed.inc SET SESSION sql_log_bin= 0; CREATE USER "recovery_user" IDENTIFIED BY "recovery_password"; GRANT REPLICATION SLAVE ON *.* TO "recovery_user"; FLUSH PRIVILEGES; SET SESSION sql_log_bin= 1; # # Start recovery and watch it fail for a bit as: # 1) Server 1 has purged GTIDs # 2) Server 2 does not has the correct replication user # SET SESSION sql_log_bin= 0; call mtr.add_suppression("There was an error when connecting to the donor*"); call mtr.add_suppression("For details please check performance_schema.replication_connection_status table and error log messages of Slave I/O for channel group_replication_recovery."); call mtr.add_suppression("Slave I/O for channel 'group_replication_recovery': Got fatal error 1236*"); call mtr.add_suppression("Error while starting the group replication recovery receiver/applier threads"); call mtr.add_suppression("Slave I/O for channel 'group_replication_recovery': Master command COM_REGISTER_SLAVE failed: Access denied for user 'recovery_user'.*"); call mtr.add_suppression("Slave I/O for channel 'group_replication_recovery': Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again.*"); call mtr.add_suppression("Slave I/O thread couldn't register on master"); call mtr.add_suppression("Error while creating the group replication recovery channel with donor.*"); call mtr.add_suppression("Error when configuring the group recovery connection to the donor.*"); SET SESSION sql_log_bin= 1; CHANGE MASTER TO MASTER_USER= 'recovery_user', MASTER_PASSWORD= 'recovery_password' FOR CHANNEL 'group_replication_recovery'; SET @debug_save_rec_int= @@GLOBAL.group_replication_recovery_reconnect_interval; SET GLOBAL group_replication_recovery_reconnect_interval= 1 # seconds; START GROUP_REPLICATION; include/gr_wait_for_member_state.inc # # Create the recovery user on server 2 # The joiner should now be able to connect to server 2 when failing over. # SET SESSION sql_log_bin= 0; CREATE USER "recovery_user" IDENTIFIED BY "recovery_password"; GRANT REPLICATION SLAVE ON *.* TO "recovery_user"; FLUSH PRIVILEGES; SET SESSION sql_log_bin= 1; include/gr_wait_for_member_state.inc include/assert.inc [On the recovered member, the table should exist and have 1 elements] # # Cleaning up # SET @@GLOBAL.group_replication_recovery_reconnect_interval= @debug_save_rec_int; DROP TABLE t1; SET SESSION sql_log_bin= 0; DROP USER "recovery_user"; SET SESSION sql_log_bin= 1; SET SESSION sql_log_bin= 0; DROP USER "recovery_user"; SET SESSION sql_log_bin= 1; include/group_replication_end.inc