Mysql双主配置的详细步骤

目录
  • 前言
  • 一、mysql配置文件
    • (1)节点A配置
    • (2)节点B配置
  • 二、配置节点A为节点B的master(主从模式)
  • 三、完成双主配置
  • 四、测试
  • 五、控制同步的库或表
  • 六、一个账号多个IP
  • 总结

前言

特点:在双主配置中,两台mysql互为主从节点。节点A是节点B的master,同时节点B也是节点A的master。

安装mysql步骤略过

一、mysql配置文件

(1)节点A配置

# 设置server-id,两节点必须不一样
server-id = 100

# 开启bin_log,模式为ROW,允许最大日志为1G
log_bin = mysql-bin
binlog_format = ROW
max_binlog_size = 1024M

# mysql5.7的版本不需要配置log-slave-updates=1
# log-slave-updates = 1

# 实现数据库宕机恢复后,自动同步缺少的数据
relay_log = mysql-relay-bin

# 设置自增ID初始值为2,每次自增量为2。即都是偶数2,4,6,8,...
auto_increment_offset = 2
auto_increment_increment = 2

# 开启gtid
gtid_mode = ON
enforce_gtid_consistency = 1

# 忽略不需要同步的schema
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys

(2)节点B配置

只列出了与节点A不同的配置

# 设置server-id,两节点必须不一样
server-id = 200

# 设置自增ID初始值为1,每次自增量为2。即都是奇数1,3,5,7,...
auto_increment_offset = 1
auto_increment_increment = 2

二、配置节点A为节点B的master(主从模式)

节点A为master,节点B为slave。

(1)登录节点A,创建slave(节点B)使用的账号。

# 在节点A上创建账号repl_user,允许从任意IP访问,密码为slave@100,
grant replication slave on *.* to 'repl_user'@'%' identified by 'slave@100';
flush privileges;

(2)查看节点A的master信息

如下图所属,节点A的bin_log日志为mysql-bin.000001,位置是154

# 清空master信息。初次配置可以使用,若已运行了同步,切记不要使用!
reset master;

# 查看master信息
show master status;

+------------------+----------+--------------+------------------+---------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                           |
+------------------+----------+--------------+------------------+---------------------------------------------+
| mysql-bin.000001 |     154 |              |                  | c2cf218e-2317-11ec-a36f-5cf9dd4fd6a8:1-5    |
+------------------+----------+--------------+------------------+---------------------------------------------+

(3)登录节点B,设置节点B的master为节点A

# 停止节点B上的slave
stop slave;

# 将节点B的master设为节点A,以下的配置信息均表示节点A
# MASTER_LOG_FILE和MASTER_LOG_POS,是在第(2)步中查看节点A的master信息
CHANGE MASTER TO
       MASTER_HOST='127.0.0.1',
       MASTER_PORT=3307,
       MASTER_USER='repl_user',
       MASTER_PASSWORD='slave@100',
       MASTER_LOG_FILE='mysql-bin.000001',
       MASTER_LOG_POS=154;

# 开启节点B上的slave
start slave;

(4)确认节点B的slave是否运行成功。当返回的结果中,Slave_IO_Running和Slave_SQL_Running都为YES时,表示成功。如果为NO或Connecting时,请在mysql的data目录中查看.err结尾的日志文件,找出[ERROR]级别的日志查看。初次配置时,一般都是my.ini配置问题,或同步账号创建问题导致的。

# 在节点B中查看slave状态
show slave status\G;

*************************** 1. row ***************************
              Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: repl_user
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 2207
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 1143
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
                           ......

(5)若slave配置出现异常,可使用以下语句重置

reset slave all;

三、完成双主配置

此时,已成功配置了节点A与节点B的主从模式,即节点A是节点B的master。接下来重复步骤三的操作,但是节点A、B的操作要颠倒过来,即在节点B上创建同步账号,查看master信息,在节点A上设置节点B为master。配置完成后,同样查看节点A的slave状态,Slave_IO_Running和Slave_SQL_Running是否都为YES。

四、测试

在节点A添加、删除schema或表或数据,在节点B中查看是否有正确同步。

测试自增主键,分别在节点A、B上添加自增主键的数据,与配置文件是否对应。一个为奇数,一个为偶数。增加或删除数据,主键是否会出现冲突的情况。

五、控制同步的库或表

通过修改my.ini实现

(1)在master端控制

binlog-do-db            binlog日志记录的数据库(多数据库用,隔开)

binlog-ignore-db      binlog日志中忽略数据库(多数据库用,隔开)

只有在binlog中记录的表,才能同步给从库

# binlog中记录这两个表
binlog-do-db=db_1,db_2      

# binlog中不记录这两个表
binlog-ignore-db=db_3,db_4

(2)在slave端控制

replicate-do-db                  设定需要复制的数据库
        replicate-ignore-db            设定需要忽略的复制数据库 
        replicate-do-table              设定需要复制的表
        replicate-ignore-table        设定需要忽略的复制表 
        replicate-wild-do-table       同replication-do-table功能一样,可以通配符
        replicate-wild-ignore-table 同replication-ignore-table功能一样,可以加通配符

注:忽略的配置里,在从库的relaylog中仍有信息,只是没有执行同步。

# 执行同步的库
replicate-do-db=db_1
replicate-do-db=db_2

# 忽略同步的库
replicate-ignore-db=db_3

# 执行同步的表
replicate-do-table=db_1.table_a
replicate-do-table=db_2.table_b

# 忽略同步的表
replicate-ignore-table=db_2.table_c

# 只复制哪个库的哪个表
replicate-wild-do-table=db_4.% 

# 忽略哪个库的哪个表
replicate-wild-ignore-table=mysql.%

第五部分引用自CSDN博主「Mr. Sun_」的原创文章

原文链接:https://www.jb51.net/article/252656.htm

六、一个账号多个IP

当一台mysql作为主节点,N台作为从节点时,如果每个从节点都添加一个账号会非常繁琐。此时可以在主节点中,创建一个账号,给此账号设置多个IP,从而减少添加的账号个数。

具体做法是,将创建账号的语句执行多次,每次的IP不同即可。

# 创建一个账号名,为此账号设置多个ip
grant replication slave on *.* to 'repl_user'@'192.168.5.10' identified by 'slave@100';
grant replication slave on *.* to 'repl_user'@'192.168.5.20' identified by 'slave@100';
FLUSH PRIVILEGES

第六部分引用自CSDN博主「rucypli」的回答

mysql grant 多个ip-CSDN论坛

总结

到此这篇关于Mysql双主配置的文章就介绍到这了,更多相关Mysql双主配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL配置了双主,是如何避免出现数据回环冲突的

    不知道大家想过这个问题没有?如果配置了双主,是如何避免出现数据回环冲突的,因为在数据双活的设计方案中,这可以算是方案的核心设计思想之一. 如果主库触发SQL语句: insert into test_data(name) values('aa'); 那么Master1生成binlog,推送数据变化到Master2,在Master2上面生成relay log,然后交由sql thread进行变更重放,反之也是类似的流程,整个流程可以这样描述. 如果Master2消费了relay的数据,然后会产生bi

  • MySQL双主(主主)架构配置方案

    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入口,增加高可用.不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题. 主从同步复制原理 在开始之前,我们先来了解主从同步复制原理. 复制分成三步: 1. master将改变记录到二进制日志(binary

  • Mysql双主配置的详细步骤

    目录 前言 一.mysql配置文件 (1)节点A配置 (2)节点B配置 二.配置节点A为节点B的master(主从模式) 三.完成双主配置 四.测试 五.控制同步的库或表 六.一个账号多个IP 总结 前言 特点:在双主配置中,两台mysql互为主从节点.节点A是节点B的master,同时节点B也是节点A的master. 安装mysql步骤略过 一.mysql配置文件 (1)节点A配置 # 设置server-id,两节点必须不一样 server-id = 100 # 开启bin_log,模式为RO

  • Mysql双主搭建的方法步骤

    目录 1. Mysql binlog参数配置 2. Mysql binlog查看详细内容 3. Mysql双主搭建 4. Mysql双主解决数据回环 4.1 双主同步测试一 4.2 双主同步测试二 4.3 双主同步测试三 1. Mysql binlog参数配置 log-bin=mysql-bin 打开二进制日志功能,默认在datadir下 binlog-ignore-db binlog-ignore-db=mysql binlog-ignore-db=information_schema bin

  • 使用IDEA配置Tomcat和连接MySQL数据库(JDBC)详细步骤

    IDEA配置Tomcat 1,点击Run-EDit Configurations- 2.点击左侧"+"号,找到Tomcat Server-Local(若是没有找到Tomcat Server 可以点击最后一行 34 items more) 3.在Tomcat Server -> local-> Server -> Application server项目下,点击 Configuration ,找到本地 Tomcat 服务器,再点击 OK按钮. 至此,IntelliJ I

  • window10下node使用管理神器NVM安装配置超详细步骤

    目录 前言 一.什么是nvm? 二.nvm下载安装配置 1.下载 2.nvm解压安装 3.检查环境变量 4.确认安装成功 5.设置和安装node 5.1 设置淘宝镜像 5.2 安装node指定版本并使用 5.3 指定全局安装路径和缓存路径 总结建议 前言 node版本持续更新,一些node的新特性只有在node的较高版本中才可以使用.但是如果将node版本切换到较高版本,就会导致对现有项目的一些依赖造成环境不兼容.所以,需要一个工具对node版本进行管理,允许开发环境同时存在多个node版本,开

  • linux下vsftpd的安装及配置使用详细步骤(推荐)

    vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征. 比如:非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高等. vsftpd是一款在Linux发行版中最受推崇的FT

  • linux防火墙配置(基于yum仓的配置)详细步骤

    目录 前言 1.首先确保yum仓的配置是否完好(CentOs6)  2.要求在centOs6中安装httpd和mod_ssl软件包 3.在CentOs6中启用httpd.service并使其开机自启 4.在web内容的开发者完成Web应用之前,使用Congratulation!来提供占位符页面 5.启用和启动firewalld服务 6.在CentOs6上的firewalld配置对所有未指定连接使用dmz区域 7.打开两台虚拟机,分别查看虚拟机地址 8.来自子网10.1.1.0/24网段的流量路由

  • Windows Server 2016服务器IIS配置的详细步骤(图文)

    本文主要记录 Windows Server 2016 环境下,安装配置 IIS 的详细步骤.需要说明的是,在选择“功能”或“角色服务”时不建议将所有的都勾选上,因为这样会添加很多不必要的功能和服务,占用服务器的磁盘空间和运行速度,应该是根据自己需要进行选择配置. 多余的话就不说了,配置Windows Server 2016服务器具体如下图 到此就配置完了,打开本地网址127.0.0.1即可. 到此这篇关于Windows Server 2016服务器IIS配置的详细步骤(图文)的文章就介绍到这了,

  • MySQL双Master配置的方法详解

    刚刚抽空做了一下MYSQL 的主主同步.把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST1.环境描述.主机:192.168.0.231(A)主机:192.168.0.232(B)MYSQL 版本为5.1.212.授权用户.A:mysql> grant replication slave,file on *.* to 'repl1'@'192.168.0.232' identified by '123456';Query OK, 0 rows affected (0.

  • idea使用外置tomcat配置springboot详细步骤

    创建一个maven项目 导入springboot依赖,注意底下注释部分 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

随机推荐