1. 使用单主机模式 进行测试.
用到的配置和脚本如下:
node1 - my.cnf
[mysqld]
user=mysql
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "node1:33060"
loose-group_replication_group_seeds= "node1:33060,node2:33060,node3:33060"
loose-group_replication_bootstrap_group=off
loose-group_replication_recovery_user=repl
loose-group-replication-single-primary-mode='ON'
loose-group-replication-enforce-update-everywhere-checks='OFF'
relay-log=replay-bin
node2-my.cnf
[mysqld]
user=mysql
server_id=2
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "node2:33060"
loose-group_replication_group_seeds= "node1:33060,node2:33060,node3:33060"
loose-group_replication_bootstrap_group=off
loose-group_replication_recovery_user=repl
loose-group-replication-single-primary-mode='ON'
loose-group-replication-enforce-update-everywhere-checks='OFF'
relay-log=replay-bin
node3-my.cnf
[mysqld]
user=mysql
server_id=3
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "node3:33060"
loose-group_replication_group_seeds= "node1:33060,node2:33060,node3:33060"
loose-group_replication_bootstrap_group=off
loose-group-replication-single-primary-mode=on
loose-group-replication-enforce-update-everywhere-checks=off
relay-log=replay-bin
[mysqld_safe]
docker启动脚本:run.sh
#!/bin/bash
if [ "$1" = "" ] || [ "$1" = '3306' ];then
echo -p 'examples: ./run.sh 33060; port must not a number and not equal with 3306!'
fi
#you can update this test dir for another dir
base_dir=/home/mysql_test/mysql_5.7/
if [ ! -d $base_dir ];then
echo "$base_dir not exist, please update base_dir in the shell!"
exit
fi
cd $base_dir
nodeDir=node$1
if [ ! -d $nodeDir ];then
mkdir $nodeDir
#else
#echo "$1 has exist, please input another port number!"
fi
base_dir=${base_dir}$nodeDir
conf_dir_name=conf
data_dir_name=data
conf_dir=${base_dir}/$conf_dir_name
data_dir=${base_dir}/$data_dir_name
port=3306$1:3306
container=mysql/mysql-server:5.7
cd $base_dir
if [ ! -d $conf_dir_name ];then
mkdir $conf_dir_name
fi
cd $conf_dir_name
if [ ! -f