首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql双主同步配置

基础概念

MySQL双主同步(Master-Master Replication)是一种数据库复制架构,其中两个MySQL服务器互相作为对方的主服务器,实现双向数据同步。这种配置可以提高系统的可用性和数据冗余。

优势

  1. 高可用性:当一个主服务器出现故障时,另一个主服务器可以接管服务,保证系统的连续性。
  2. 负载均衡:可以将读操作分散到两个主服务器上,提高系统的整体性能。
  3. 数据冗余:数据在两个主服务器上都有备份,减少了数据丢失的风险。

类型

MySQL双主同步通常通过以下两种方式实现:

  1. 基于GTID(Global Transaction Identifiers)的复制:这是MySQL 5.6及以上版本推荐的复制方式,通过全局事务ID来标识事务,简化了复制的配置和管理。
  2. 基于二进制日志的复制:这是早期MySQL版本常用的复制方式,通过二进制日志(Binary Log)来同步数据。

应用场景

  1. 高并发读写系统:适用于需要处理大量读写操作的场景,如电商网站、社交平台等。
  2. 高可用性要求高的系统:适用于对系统可用性要求极高的场景,如金融系统、在线支付系统等。

配置步骤

以下是基于GTID的MySQL双主同步配置示例:

主服务器1(Master1)

  1. 编辑MySQL配置文件(通常是my.cnfmy.ini):
  2. 编辑MySQL配置文件(通常是my.cnfmy.ini):
  3. 重启MySQL服务:
  4. 重启MySQL服务:
  5. 创建用于复制的用户:
  6. 创建用于复制的用户:
  7. 获取主服务器1的二进制日志文件名和位置:
  8. 获取主服务器1的二进制日志文件名和位置:

主服务器2(Master2)

  1. 编辑MySQL配置文件:
  2. 编辑MySQL配置文件:
  3. 重启MySQL服务:
  4. 重启MySQL服务:
  5. 创建用于复制的用户:
  6. 创建用于复制的用户:
  7. 配置主服务器2连接到主服务器1:
  8. 配置主服务器2连接到主服务器1:
  9. 启动复制:
  10. 启动复制:

验证配置

在两个主服务器上分别执行以下命令,检查复制状态:

代码语言:txt
复制
SHOW SLAVE STATUS\G;

确保Slave_IO_RunningSlave_SQL_Running都显示为Yes

常见问题及解决方法

  1. 复制延迟:如果发现复制延迟较大,可以检查网络带宽、服务器性能等因素,优化配置或增加硬件资源。
  2. 数据不一致:确保两个主服务器的server-id不同,并且gtid_modeenforce_gtid_consistency都设置为ON
  3. 复制中断:检查错误日志,通常会显示具体的错误信息,根据错误信息进行相应的排查和解决。

参考链接

通过以上步骤,你可以成功配置MySQL双主同步,提高系统的可用性和性能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql 5.6配置双主同步

mysql8.0已经发布几年了,现在还有使用mysql5.6的情况,今天我们来温故一下mysql5.6的双主配置, 配置 MySQL 5.6 双主同步的步骤如下: 请注意,你需要在两个服务器上都执行这些步骤...1.配置 my.cnf 文件 打开 /etc/my.cnf 文件并添加以下配置: 在 Master1 上: [mysqld] server_id=1 log_bin=mysql-bin replicate-do-db...replicate-do-db=your_database auto_increment_increment = 2 auto_increment_offset = 2 注意:你应该将 your_database 替换为你想要同步的数据库名称...2.重启 MySQL 服务 使用以下命令重启 MySQL 服务: sudo service mysql restart 3....以上就是配置 MySQL 5.6 双主同步的步骤。请注意,双主同步需要小心处理,因为它可能导致数据不一致的问题,如双重写入。因此,建议只在熟悉这个概念的情况下使用它,并确保有恰当的冲突解决策略。

33320

Mysql配置 主主同步(上)

A数据库:182.92.172.80 B数据库:123.57.44.85 二.操作 A数据库操作 1.开启binlog vim /etc/my.cnf [mysqld] log-bin=mysql-bin...#开启二进制日志 server-id=1 #设置server-id,不能一样 2.重启mysql,创建用于同步的用户账号 systemc restart mysql 登陆数据库 mysql -hlocalhost...-uname -ppassword 创建用户并授权:用户:test密码:123456,ip配置为B的IP CREATE USER 'test'@'123.57.44.85' IDENTIFIED BY...privileges; 锁表,禁止写入,当前窗口不能退出,这时候开启另一个终端继续操作 flush table with read lock; 3.新窗口操作,查看master状态,记录二进制文件名(mysql-bin...Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin

1.2K30
  • Mysql配置 主主同步(下)

    B数据库操作 1.导入数据 mysql -uroot -p < alldb.sql 2.修改配置文件 vim /etc/my.cnf [mysqld] log-bin=mysql-bin #开启二进制日志...server-id=2 #设置server-id,必须唯一 3.重启mysql,配置同步 systemctl restart mysql 需要A服务器主机名,登陆凭据,二进制文件的名称和位置 CHANGE...Slave_IO_Running: Yes Slave_SQL_Running: Yes 都是yes即可 5.配置作为A的主 创建用户并授权:用户:test密码:123456,ip配置为A的IP CREATE...123456'; 分配权限 GRANT REPLICATION SLAVE ON *.* TO 'test'@'182.92.172.80'; flush privileges; 这次不用锁表了,因为B在同步...6.新窗口操作,查看master状态,记录二进制文件名(mysql-bin.000004)和位置(254): SHOW MASTER STATUS; ------------------+-------

    1.4K10

    Mysql(双主)主主架构配置

    因此,如果是双主或者多主,就会增加mysql入口,增加高可用。...不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题。...MySQL双主(主主)架构方案思路是: 1.两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用; 2.masterA是masterB的主库,masterB...又是masterA的主库,它们互为主从; 3.两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务); 4.所有提供服务的从服务器与masterB进行主从同步(双主多从);...配置主主同步 2.1 配置 /etc/my.cnf masterA(192.168.59.132) 配置文件 [[email protected]04 mysql]# vim /etc/my.cnf

    8.7K120

    MySQL数据同步【双主热备】

    数据库同步方式   两台服务器互为主从,双向同步数据 ? 创建数据库表  为试验双向同步,简单编写了一个创建数据库和一个用户表的语句。  并分别在服务器242和243上的MySQL中执行语句。...配置数据库my.ini文件 在242和243服务器MySQL的安装目录下找到my.ini文件 1.my.ini文件各配置项简单释义 my.ini详情及简单释义 # MySQL Server Instance...# InnoDB最大并发线程数 innodb_thread_concurrency=8 PS: 上面的折叠代码试验在chrome浏览器下需要手动刷一下页面才能展开 2.配置双向同步...和243上配置好之后,分别重启MySQL服务,如果重启失败则说明配置有误!...Show Slave Status 部分释义  ① Slave_IO_Status:线程已经连接上主服务器,正等待二进制日志事件到达。如果主服务器正空闲,会持续较长的时间。

    2.6K100

    MySQL主从配置——双主 原

    MySQL主从配置——双主 本人是测试环境,准备了两台安装好mysql的服务器(masterA和masterB),可以保证没数据写入,否则需要先将两台服务器上的数据一致,然后再进行主从配置,步骤是:先...环境 MySQL双主(主主)架构思路: 两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用; masterA是masterB的主库,masterB...又是masterA的主库,它们互为主从; 所有提供服务的从服务器与masterB进行主从同步(即可实现双主多从); 架构图 搭建主从配置 创建主从同步用户 masterA: [root@adailinux...my.cnf时添加了全部参数进去,但是最后即便同步配置完成了也未能完成新建的库的同步,暂时未找到原因(猜测:和replicate参数有关),之后持续更新。...status\G 在此查看有如下状态说明配置成功: Slave_IO_Running: Yes Slave_SQL_Running: Yes 主从同步测试 在masterA上创建一个库: mysql>

    1.3K40

    otter用于跨云RDS之间配置双主实时同步

    rds,平时只使用华为云的rds,和双A方案有点差异,需要注意的是rds环境不能安装任何的软件,所以,我目前想到的方案有: 1、用MySQL自带的主从复制。...OGG用于跨云RDS之间配置双主实时同步(远程捕获和投递):https://www.xmmup.com/oggyongyukuayunrdszhijianpeizhishuangzhushishitongbuyuanchengbuhuohetoudi.html...RDS之间配置双主实时同步参考:https://www.xmmup.com/otteryongyukuayunrdszhijianpeizhishuangzhushishitongbu.html otter...,且建议开启跳过ddl异常,DryRun模式 不要开启 同时在配置双向同步的时候,建议执行otter-system-ddl-mysql.sql增加同步控制库,若是单向同步,则不需要运行该脚本。...若要配置双向同步,则必须添加2个canal,若配置单向同步,则配置一个canal即可。

    3.3K50

    配置MySQL主从双主引发的反思 原

    记一次mysql配置双主全过程 [danger] 强烈建议在执行本节所有操作前将所有操作命令操作copy到Sublime Text编辑器替换port为要配置主从的mysql实例对应的端口,避免误操作...搭建mysql双主结构 配置文件 数据库配置示例文件(Attention: 因为数据库要配置双主模式,所以在部署时主库和从库的server-id一定不能一样): $ cat 3314.cnf [mysqld3314...has read all relay log; waiting for the slave I/O thread to update it“) 配置双主 Note:如果需要新从库和主库构建双主集群,从库必须不能接受任何写请求...=2954215; mysql> start slave; mysql> show slave status\G ## 搭建完成后用同样的方式(插入数据)检测双主状态!!!...如果是恢复双主中的一个节点,必须先停止2个节点主从同步。不能让健康的节点一直同步错误的节点。

    96430

    双节点配置MySQL主备同步与Y20持续部署流水线

    MySQL主备是最简单的MySQL集群,和单机MySQL相比,只多了一个用于同步备份的MySQL。 1. 什么是MySQL主备 两个MySQL实例。第一个和普通单机MySQL一样,提供读取和写入数据。...MySQL主备的配置步骤 这里用两台腾讯云 Ubuntu 20.04 主机演示,已经分别安装好了MySQL(可以参考:使用Generic二进制包安装MySQL8)。...步骤【6】验证 主备配置完成以后,可以在主节点插入数据,看备节点是否会同步 4. 持续部署 利用持续部署系统,把以上步骤编排为流水线,在新节点上就可以自动完成配置。...这里使用的持续部署系统是 Y20持续部署,流水线也编排好了 双节点配置MySQL主备同步。...步骤和变量如下: 流水线步骤 主节点: 配置 /etc/my.cnf 的 server-id 创建同步用户 查询当前 binary log 的文件和位置 查询主节点 IP 备节点: 配置 /etc/my.cnf

    989100
    领券