主库(阿里云数据库):
创建备份账号:
CREATE USER 'masterSlave'@'%' IDENTIFIED WITH mysql_native_password BY 'ms123456';
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'masterSlave'@'%';
FLUSH PRIVILEGES;
从库配置:
## 默认编码格式
[client]
default-character-set=utf8
[mysqld]
## 设置server-id,同一局域网中需要唯一
server-id=201
## 设置编码格式
character-set-server=utf8
## 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
## 允许最大连接数
max_connections=2000
## 指定需要同步的数据库名称
replicate-do-db=backtest
## 开启gitid模式
gtid_mode=ON
## 保证GTID安全的参数
enforce_gtid_consistency=ON
[mysqld]
server-id = 201
port = 3306
replicate-do-db = backtest
replicate-ignore-db = mysql,information_schema,performance_schema,sys
slave-skip-errors = all
log_bin = mysql-bin
log-bin-index = mysql-bin.index
relay-log = relay-log
relay_log_index = relay-log.index
expire_logs_days = 10
max_binlog_size = 100M
gtid_mode = on
enforce_gtid_consistency = on
binlog_format = row
log-slave-updates = 1
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
启动从库:
docker run -itd \
--name ali-mysql-slave1 \
-p 3321:3306 \
--restart unless-stopped \
-v /home/mysql-rds-slave1/log:/var/log/mysql \
-v /home/mysql-rds-slave1/data:/var/lib/mysql \
-v /home/mysql-rds-slave1/conf:/etc/mysql/conf.d \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
执行主从同步sql:
change master to master_host = 'rm-2ze6jby5d4z090vtz4o.mysql.rds.aliyuncs.com', master_port = 3306, master_user = 'masterSlave', master_password='ms123456', master_auto_position = 1;
SHOW MASTER STATUS;
stop slave;
reset slave all;
reset master;
set @@global.gtid_purged='01cf9118-230e-11ea-b279-00163e033e63:1-34533811,
2055a1a0-9d4e-11ec-9a00-00163e3085a0:1-6537935';
start slave;
show slave status;