全部
常见问题
产品动态
精选推荐

MySQL集群部署:多主多从

管理 管理 编辑 删除

环境准备

MySQL多主多从环境就是一个集群中有多个互为主从的节点,同时每个互为主从的写节点又挂载只读的从节点。之前的章节已经介绍过主从搭建、双主搭建的方法,多主多从架构也是在其基础上进行改造。总的来说,MySQL的集群基本上是在主从架构的基础上进行演化改进的。所以下面我主要列出搭建的核心步骤和配置文件,不再一一细讲。

分别在每个节点配置 /etc/hosts 主机域名映射。


#IP             域名|主机名
10.53.207.20    10.53.207.20  #master1
10.53.207.21    10.53.207.21  #master2
10.53.207.22    10.53.207.22  #slave1
10.53.207.23    10.53.207.23  #slave2

关闭防火墙:ufw disable

重启网络执行:

sudo systemctl restart systemd-resolved;
bash /etc/hosts;

或者

sudo /etc/init.d/dns-clean start;
sudo /etc/init.d/networking restart;

#master节点配置

配置这两个节点:10.53.207.20,10.53.207.21

  1. my.cnf 文件(默认在 /etc/mysql/ 下)配置,我只配置了关键核心属性,其他属性读者可以自定义配置

10.53.207.20


[mysqld]
#集群中服务实例的唯一标识,两个节点不能相同
server-id = 20
# 开启gtid
gtid_mode = ON
enforce_gtid_consistency = 1
# 设置自增ID初始值为1,每次自增量为2。即都是奇数1,3,5,7,...
auto_increment_offset = 1
auto_increment_increment = 2
# 不需要写binlog的库
binlog_ignore_db = mysql
binlog_ignore_db = information_schema
binlog_ignore_db = performance_schema
binlog_ignore_db = sys
# 从库不进行同步的库
replicate_ignore_db = mysql
replicate_ignore_db = information_schema
replicate_ignore_db = performance_schema
replicate_ignore_db = sys

10.53.207.21

[mysqld]
server-id=21
# 开启gtid
gtid_mode = ON
enforce_gtid_consistency = 1
# 设置自增ID初始值为2,每次自增量为2。即都是偶数2,4,6,8,...
auto_increment_offset = 2
auto_increment_increment = 2
# 不需要写binlog的库
binlog_ignore_db = mysql
binlog_ignore_db = information_schema
binlog_ignore_db = performance_schema
binlog_ignore_db = sys
# 从库不进行同步的库
replicate_ignore_db = mysql
replicate_ignore_db = information_schema
replicate_ignore_db = performance_schema
replicate_ignore_db = sys

配置完成后分别重启两个服务:service mysql restart

2、然后分别在两个节点中创建数据同步账户:

use mysql;
create user 'repl'@'10.53.207.%' identified by 'P@repl';
grant replication slave on *.* to 'repl'@'10.53.207.%';
flush privileges;

3、分别在两个节点配置并开启主从同步:

10.53.207.20

change master to
    master_host='10.53.207.21',
    master_port=3306,
    master_user='repl',
    master_password='P@repl',
    master_auto_position=1,
    get_master_public_key=1;

开启主从同步:start slave

10.53.207.21


change master to
    master_host='10.53.207.20',
    master_port=3306,
    master_user='repl',
    master_password='P@repl',
    master_auto_position=1,
    get_master_public_key=1;

开启主从同步:start slave

4、验证双主架构

可以在任意一个节点同时执行 show master status 和 show replica status 来查看 主从同步信息。

分别在两个服务上进行数据的更新,发现数据都可以同步至另外的主节点。

#slave节点配置

配置这两个节点:10.53.207.22,10.53.207.23

1、my.cnf 文件配置

10.53.207.22

[mysqld]
server-id=22
read_only=1
gtid_mode=ON
enforce_gtid_consistency=1

replicate_ignore_db = mysql
replicate_ignore_db = information_schema
replicate_ignore_db = performance_schema
replicate_ignore_db = sys

10.53.207.23

[mysqld]
server-id=23
read_only=1
gtid_mode=ON
enforce_gtid_consistency=1

replicate_ignore_db = mysql
replicate_ignore_db = information_schema
replicate_ignore_db = performance_schema
replicate_ignore_db = sys

配置完成后分别重启两个服务:service mysql restart

2、配置主从同步信息并开启同步服务。

10.53.207.22

change master to
    master_host='10.53.207.20',
    master_port=3306,
    master_user='repl',
    master_password='P@repl',
    master_auto_position=1,
    get_master_public_key=1;

开启主从同步:start slave

10.53.207.23


change master to
    master_host='10.53.207.21',
    master_port=3306,
    master_user='repl',
    master_password='P@repl',
    master_auto_position=1,
    get_master_public_key=1;

开启主从同步:start slave

#集群验证

可以在每个节点通过 show slave status 或者 show replica status 查看主从同步状态,通过 show master status 查看主节点状态。

可以在主节点(10.53.207.20,10.53.207.21)上进行插入数据,发现数据都能同步至其他节点(包括另一个主节点和其他从节点)。

在从节点无法进行数据更新( super 和 connection_admin 权限的用户不受只读属性限制),只能进行查询,并且可以同步主节点的数据。


请登录后查看

CRMEB 最后编辑于2024-12-20 16:43:45

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
61
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服