10.60.143.32主
10.60.143.33從
set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
set global validate_password.length=0;
set global validate_password.policy=0;
set global validate_password.special_char_count=0;
set password='1';
Start slave io_thread;
Stop slave io_thread;
Start slave SQL_thread;
Stop slave SQL_thread;
非GTID
create user 'repl'@'%' identified by '1';
grant replication slave on *.* to 'repl'@'%' ;
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '1';
create database t;
use t;
create table t (id int,a int);
insert into t values (1,1),(2,2),(3,3);
show master status\G;
mysqldump -uroot -p1? --all-databases? >/setup/h.sql
scp /setup/h.sql? root@10.60.143.33:/setup/
mysql </setup/h.sql
change master to master_host='10.60.143.32',master_user='repl',master_password='1',master_log_file='mysql-bin.000002',master_log_pos=1958;
stop slave ;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
start slave ;
show slave status\G;
MYSQL8.0 的復制用戶必須要用 mysql_native_password
GTID
create user 'repl'@'%' identified by '1';
grant replication slave on *.* to 'repl'@'%' ;
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '1';
create database t;
use t;
create table t (id int,a int);
insert into t values (1,1),(2,2),(3,3);
mysqldump -uroot -p1 --set-gtid-purged=on? --triggers --routines --events? --all-databases? >/setup/h.sql
mysql </setup/h.sql
change master to master_host='10.60.143.32',master_port=3306,master_user='repl',master_password='1',master_auto_position=1;
stop slave;
SET gtid_next = '973d41ac-c84d-11ec-b614-0050569684a9:4';
BEGIN;COMMIT;
SET gtid_next = 'AUTOMATIC';
START SLAVE;
show slave status\G;
多源復制
10.60.143.91
10.60.143.138
10.60.143.136
mysqldump -uroot -p1 --set-gtid-purged=on? --triggers --routines --events l? >/setup/l.sql
mysqldump -uroot -p1 --set-gtid-purged=on? --triggers --routines --events y? >/setup/y.sql
CHANGE REPLICATION SOURCE to SOURCE_HOST='10.60.143.91',SOURCE_USER='repl',SOURCE_PASSWORD='1',SOURCE_AUTO_POSITION=1 FOR CHANNEL 'C1';?
CHANGE REPLICATION SOURCE to SOURCE_HOST='10.60.143.138',SOURCE_USER='repl',SOURCE_PASSWORD='1',SOURCE_AUTO_POSITION=1 FOR CHANNEL 'C2';?
//change replication filter replicate_wild_do_table=('t.t,'x.x','y.y');
克隆
10.60.143.32
10.60.143.33
default_authentication_plugin=mysql_native_password
plugin-load-add=mysql_clone.so
INSTALL PLUGIN clone SONAME 'mysql_clone.so';
CREATE USER clone@'%' IDENTIFIED by '1';
GRANT BACKUP_ADMIN ON *.* TO 'clone';
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'clone';
從庫
grant clone_admin on *.* to clone;
set global clone_valid_donor_list ='10.60.143.32:3306';
clone instance from clone@'10.60.143.32':3306 identified by '1';
傳統(tǒng)MGR
10.60.143.137
mkdir -p /home/mysql3307
mkdir -p /home/mysql3308
mkdir -p /home/mysql3309
mysqld? --basedir=/usr --datadir=/home/mysql3307/ --initialize
mysqld? --basedir=/usr --datadir=/home/mysql3308/ --initialize
mysqld? --basedir=/usr --datadir=/home/mysql3309/ --initialize
chown mysql.mysql -R mysql33*
mysqld_multi --defaults-extra-file=/etc/mym.cnf report
grep 'temporary password' /var/log/mysqld.log
[mysqld_multi]
mysqld =/usr/bin/mysqld_safe
mysqladmin =/usr/bin/mysqladmin
user =root
pass =1
[client]
socket=/var/lib/mysql/mysql.sock
[mysqld1]
basedir=/usr
datadir = /home/mysql3307? ? ?
port = 3307
server_id = 2
socket = /tmp/mysql3307.sock
character-set-server=utf8
log-error= /home/mysql3307/error.log
pid-file = /home/mysql3307/mysql3307.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency=ON
binlog_format = ROW
log-bin=mysql-bin
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= "10.60.143.137:3317"
loose-group_replication_group_seeds= "10.60.143.137:3317,10.60.143.137:3318,10.60.143.137:3319"
loose-group_replication_bootstrap_group=off
loose-group_replication_single_primary_mode=FALSE
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum = NONE
expire_logs_days = 3
#group_replication_allow_local_disjoint_gtids_join = ON
[mysqld2]
basedir=/usr
datadir = /home/mysql3308?
port = 3308
server_id = 3
socket = /tmp/mysql3308.sock
character-set-server=utf8
log-error= /home/mysql3308/error.log
pid-file = /home/mysql3308/mysql3308.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency=ON
binlog_format = ROW
log-bin=mysql-bin
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= "10.60.143.137:3318"
loose-group_replication_group_seeds= "10.60.143.137:3317,10.60.143.137:3318,10.60.143.137:3319"
loose-group_replication_bootstrap_group=off
loose-group_replication_single_primary_mode=FALSE
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum = NONE
expire_logs_days = 3
#group_replication_allow_local_disjoint_gtids_join = ON
[mysqld3]
basedir=/usr
datadir = /home/mysql3309? ? ?
port = 3309
server_id = 4
socket = /tmp/mysql3309.sock
character-set-server=utf8
log-error= /home/mysql3309/error.log
pid-file = /home/mysql3309/mysql3309.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency=ON
binlog_format = ROW
log-bin=mysql-bin
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= "10.60.143.137:3319"
loose-group_replication_group_seeds= "10.60.143.137:3317,10.60.143.137:3318,10.60.143.137:3319"
loose-group_replication_bootstrap_group=off
loose-group_replication_single_primary_mode=FALSE
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum = NONE
expire_logs_days = 3
#group_replication_allow_local_disjoint_gtids_join = ON
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY '1';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='1'? FOR CHANNEL 'group_replication_recovery';
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
SHOW PLUGINS;
主庫
set global group_replication_bootstrap_group=ON;
START group_replication;
set global group_replication_bootstrap_group=OFF;
從庫
START group_replication;
SELECT * FROM performance_schema.replication_group_members;
mysqlsh
mysqlsh -uroot -p1 -S /tmp/mysql3307.sock
一般SQL
沙箱
dba.deploySandboxInstance(4410)
dba.deploySandboxInstance(5510)
dba.deploySandboxInstance(2210)
\connect root@localhost:4410
var cluster = dba.createCluster('xxg')
cluster.addInstance('root@localhost:5510')
cluster.addInstance('root@localhost:2210')
cluster.describe()
var s1 = mysql.getClassicSession('root@localhost:3307', '1');
var s1 = mysql.getClassicSession('root@localhost:3308', '1');
var s1 = mysql.getClassicSession('root@localhost:3309', '1');