MySQL 8.0 主从集群部署

发布时间 2023-05-27 22:31:29作者: a120608yby

1、环境

服务器名称 IP地址 备注
db-161-131 10.32.161.131
db-161-132 10.32.161.132

2、MySQL安装

参考:https://www.cnblogs.com/a120608yby/p/17164694.html

3、修改配置并重启服务

# 主节点主要配置
# vim /etc/my.cnf
...
server-id = 131
log_bin = mysql-bin
plugin-load=mysql_clone.so
...
 
# 从节点主要配置
# vim /etc/my.cnf
...
server-id = 132
log_bin = mysql-bin
plugin-load=mysql_clone.so
relay-log=db-161-132-relay-bin
relay-log-index=db-161-132-relay-bin
read_only=1
report-host=db-161-132
...

# 重启MySQL服务
systemctl restart mysqld
 
# 在主节点上创建复制账号
> create user 'repl_user'@'%' identified by 'password';
> grant replication slave on *.* to repl_user@'%';

# 在主节点上创建克隆账号
> create user 'clone_user'@'%' identified by 'password'; 
> grant backup_admin on *.* to 'clone_user'@'%'; 

# 在从节点上创建克隆账号
> create user 'clone_user'@'%' identified by 'password'; 
> grant clone_admin on *.* to 'clone_user'@'%'; 

4、克隆主节点上的所有数据并启动复制

# 在从节点上克隆主节点数据
> set global clone_valid_donor_list = '10.32.161.131:3306';
> clone instance from clone_user@10.32.161.131:3306 identified by 'password';

# 在从节点上查看克隆状态且是否完成
> select ID,STATE,SOURCE,DESTINATION,BINLOG_FILE,BINLOG_POSITION from performance_schema.clone_status;

# 在从节点上复制配置
> change master to
master_host='10.32.161.131',
master_user='repl_user',
master_password='password',
master_log_file='mysql-bin.000001',
master_log_pos=1087;

# 在从节点上启动配置
> start slave; 

# 查看复制状态(Slave_IO_Running: Yes和Slave_SQL_Running: Yes)
> show slave status\G