MySQL主从复制(5.7.24)

主机

主----172.25.41.1
从----172.25.41.2

主从安装MySQL

在这里插入图片描述

异步复制

配置主存储
修改配置文件,添加复制来源以及服务id

log-bin=mysql-bin
server-id=1

在这里插入图片描述
启动服务器,从日志文件/var/log/mysqld.log 中获得初始密码

cat /var/log/mysqld.log |grep pass

在这里插入图片描述
使用命令进行安全初始化并修改密码

mysql_secure_installation

进入mysql配置同步用户,以及可同步服务器的IP
创建用户

create user 'octopus'@'172.25.41.%' identified by 'Zhangyu1998.';

在这里插入图片描述
授予复制权限

grant  replication slave on *.* to 'octopus'@'172.25.41.%';

在这里插入图片描述
配置从存储
添加服务id,启动MySQL

server-id=2

在这里插入图片描述
启动服务器,从日志文件/var/log/mysqld.log 中获得初始密码

cat /var/log/mysqld.log |grep pass

使用命令进行安全初始化并修改密码

mysql_secure_installation

添加主服务器,设置为从服务器,其中MASTER_LOG_FILE
MASTER_LOG_POS参数通过命令查看主服务器的内容确认

show master status;

在这里插入图片描述

CHANGE MASTER TO
MASTER_HOST='172.25.41.1',
MASTER_USER='octopus',
MASTER_PASSWORD='Zhangyu1998.',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=2956;

开始结束复制

start/stop slave;

在这里插入图片描述
结果测试

主服务器上创建数据库octopus1;172.25.41.1
在这里插入图片描述
查看从服务器172.25.41.2

在这里插入图片描述

设置 GTID(Global transaction identifiers)

主从存储均设置为gtid模式

gtid_mode=on
enforce-gtid-consistency=true

主存储设置,添加插件

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

在这里插入图片描述
从存储添加插件

 INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

查看插件状态

SELECT PLUGIN_NAME, PLUGIN_STATUS
 FROM INFORMATION_SCHEMA.PLUGINS
 WHERE PLUGIN_NAME LIKE '%semi%';

在这里插入图片描述
关闭同步

stop slave;

设置从存储同步参数并开启同步

change master to master_host='172.25.41.1',master_user='octopus',master_password='Zhangyu1998.',master_auto_position=1;
start slave;

在这里插入图片描述
查看设置结果
在这里插入图片描述
此时在主服务器上操作数据库octopus,查看结果
在这里插入图片描述
查看mysql记录内容
在这里插入图片描述

半同步复制

主存储

SET GLOBAL rpl_semi_sync_master_enabled = 1

在这里插入图片描述
从存储

SET GLOBAL rpl_semi_sync_slave_enabled = 1

在这里插入图片描述
查看环境和状态变量

show variables like '%semi%';
show status like '%rpl_semi_sync%';

在这里插入图片描述

半同步复制失败后,自动修改为异步复制方式
测试,从存储关闭同步线程

STOP SLAVE IO_THREAD;
START SLAVE IO_THREAD;

在这里插入图片描述
主存储进行插入测试,默认10s超时

在这里插入图片描述
此时变为异步复制
在这里插入图片描述
查看变量确认
在这里插入图片描述

组复制

清除/var/lib/mysql下的所有文件(实际情况下删除之前需要先备份所有数据库)

编辑数据库配置文件,添加内容如下

# 服务器ID,另外两台配置为2,3
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
# 组名称,不能与组内用户的uuid重复
loose-group_replication_group_name="34ad2599-b01f-11e9-bcf3-52540095829b"
loose-group_replication_start_on_boot=off
# 本地IP地址其余两台设为172.25.41.2、172.25.41.3
loose-group_replication_local_address= "172.25.41.1:33061"
# 组内用户
loose-group_replication_group_seeds= "172.25.41.1:33061,172.25.41.2:33061,172.25.41.3:33061"
loose-group_replication_bootstrap_group=off
loose-group_replication_ip_whitelist="127.0.0.1,172.25.0.0/24"
loose-group_replication_enforce_update_everywhere_checks=ON
# 不设置主节点
loose-group_replication_single_primary_mode=OFF

Server示例
在这里插入图片描述
重新启动数据库,查看初始密码
在这里插入图片描述
进入数据库,修改初始密码,同时进行同步参数配置

# 初次进入数据库修改初始密码以便接下来的操作
alter user root@localhost identified by 'Zhangyu1998.';
# 关闭LOG_BIN文件
SET SQL_LOG_BIN=0;
# 创建同步用户
CREATE USER rpl_user@'%' IDENTIFIED BY 'Zhangyu1998.';
# 授权权限
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
# 刷新权限
FLUSH PRIVILEGES;
# 打开文件
SET SQL_LOG_BIN=1;
# 配置同步复制参数
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Zhangyu1998.' FOR CHANNEL 'group_replication_recovery';
安装组复制插件
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
# 设置为主节点,只有主存储(1)需要设置命令
set GLOBAL group_replication_bootstrap_group=on;
# 设置兼容加入组参数(只有存储2、3需要执行该参数)
set global group_replication_allow_local_disjoint_gtids_join=on;
START GROUP_REPLICATION;
# 关闭设置主节点,只有主存储(1)需要设置该命令
set GLOBAL group_replication_bootstrap_group=on;

命令配置示例
在这里插入图片描述
在这里插入图片描述
查看插件
在这里插入图片描述
配置结果

SELECT * FROM performance_schema.replication_group_members;

在这里插入图片描述
建立数据库进行测试
注意(此时建立数据库时,需要加入主键,否则会在插入数据时产生错误)
查看发现数据库内容相同
Server2
在这里插入图片描述
Server1
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值