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

mysql 主从互备配置

基础概念

MySQL主从互备配置是一种数据库复制策略,通过将一个MySQL数据库(主库)的数据复制到一个或多个其他MySQL数据库(从库),以实现数据的冗余和高可用性。在这种配置中,主库负责处理写操作,而从库则处理读操作,从而实现读写分离,提高系统的整体性能和可靠性。

优势

  1. 高可用性:当主库发生故障时,可以快速切换到从库,保证服务的连续性。
  2. 负载均衡:通过读写分离,可以将读操作分散到多个从库上,减轻主库的压力。
  3. 数据备份:从库可以作为数据备份,防止数据丢失。
  4. 扩展性:可以根据需要增加从库的数量,提升系统的处理能力。

类型

  1. 异步复制:主库在执行完写操作后立即返回,不等待从库的确认。这种方式的优点是性能较好,但存在一定的数据丢失风险。
  2. 半同步复制:主库在执行完写操作后,需要等待至少一个从库确认收到数据后才返回。这种方式在性能和数据安全性之间取得了平衡。
  3. 组复制:多个MySQL实例组成一个复制组,共同提供服务。这种方式具有更高的可用性和容错性。

应用场景

  1. 读写分离:适用于读多写少的应用场景,如Web应用、日志系统等。
  2. 数据备份与恢复:通过从库进行数据备份,确保在主库故障时能够快速恢复数据。
  3. 高并发处理:通过增加从库数量,提升系统在高并发场景下的处理能力。

配置步骤

以下是一个简单的MySQL主从互备配置示例:

主库配置

  1. 编辑MySQL配置文件(通常是my.cnfmy.ini),添加以下内容:
代码语言:txt
复制
[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=row
  1. 重启MySQL服务。
  2. 创建用于复制的用户并授权:
代码语言:txt
复制
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
  1. 查看主库状态,记录FilePosition的值:
代码语言:txt
复制
SHOW MASTER STATUS;

从库配置

  1. 编辑MySQL配置文件,添加以下内容:
代码语言:txt
复制
[mysqld]
server-id=2
relay_log=mysql-relay-bin
read_only=1
  1. 重启MySQL服务。
  2. 在从库上设置主库信息:
代码语言:txt
复制
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_file_name',
MASTER_LOG_POS=recorded_position;
  1. 启动从库复制:
代码语言:txt
复制
START SLAVE;
  1. 检查从库复制状态:
代码语言:txt
复制
SHOW SLAVE STATUS\G;

可能遇到的问题及解决方法

  1. 主从不同步:可能是由于网络问题、从库执行SQL错误等原因导致的。可以通过查看从库的复制状态来诊断问题,并根据具体情况进行相应的处理,如重置复制、修复SQL错误等。
  2. 主库故障:当主库发生故障时,可以通过手动或自动的方式将从库提升为新的主库。具体操作可以参考MySQL官方文档中的相关指南。
  3. 性能瓶颈:如果从库的性能成为瓶颈,可以考虑增加从库的数量、优化查询语句、调整数据库参数等方式来提升性能。

参考链接

请注意,以上配置和操作可能因MySQL版本和具体环境的不同而有所差异。在实际操作过程中,请务必参考相关文档并谨慎操作。

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

相关·内容

CentOS7 中 MySQL 5.7 主主配置

现在公司中很多都用到了云服务器,无论是服务器还是数据库,但是我们在开发阶段一般还是公司自己的服务器,在没有 dba 的情况就需要开发人员自己去搭建数据库集群,但是对于小公司来说,两台数据库服务器互为主也许对开发人员来说就是比较理想的...下面我们就介绍下 CentOS7 中如何搭建 MySQL 主主服务器。 1....MySQL 配置 既然是主主,就说明两个数据库都要对外进行服务,为了防止 id 重复,我们需要在配置文件中对两个数据库的自增长的 offset 设置为不同的值,具体如下: master-1 服务器中文件...主从配置 5.1 添加主从同步账户 在 master-1 中添加 repl 用户: mysql> grant replication slave on *.* to 'repl'@' 10.213.116.12...测试主从同步 在 master-1 上执行如下 sql 脚本进行测试: mysql> show databases; +--------------------+ | Database

1.5K10
  • Mysql主从配置实战

    实战mysql主从配置 准备两个docker容器,分别在3306和3307开启两个mysql主从数据库 可执行以下命令 docker run -p 3306:3306 --name mysql3306.../logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 现在配置mysql配置文件,在conf...binlog_format=mixed server-id=101 从mysql配置 [mysqld] # mysql二进制文件取名 log-bin=mysql-bin # 二进制日志的格式,有三种:....000001",master_log_pos=443; 最后两项为上一步获取 最后执行 start slave; show slave status; 经过上面几部主从已经同步了,可以尝试建表,插数据了...下面进行故障处理 假设某种原因导致主从不同步 1.先进入主库,进行锁表,防止数据写入 使用命令: mysql> flush tables with read lock; 注意:该处是锁定为只读状态

    94830

    MySQL 主从配置详解

    https://blog.csdn.net/wh211212/article/details/52856256 #MySQL 主从配置 目录: MySQL 主从原理 MySQL...主从配置 MySQL 主从一致性检查 MySQL 主从错误处理 参考链接 一、mysql主从原理 1....二、mysql主从配置 1.基础环境配置 数据库版本: mysql 5.5.48 ( Slave 版本可以大于或者等于 Maste r版本) 操作系统: CentOS 6.7 x86_64 mininal...4.Master 服务器配置: 修改配置都需要修改 MySQL 的数据库配置文件,默认是 /etc/my.cnf 4.1 开启二进制日志 log-bin=mysql-bin 改成log-bin=/...四、MySQL 主从错误处理 1. 说明: 解决和处理主从错误这个是最重要的,比配置更更要。提高处理问题的能力,要熟悉原理,多处理积累,多学习其他网友的处理方式。

    3.4K60

    MySQL 主从同步配置

    MYSQL_ROOT_PASSWORD: 12345678 mysql配置文件在容器中 /etc/mysql/my.cnf 路径中,如果为了方便可以映射出来,执行docker-compose up...一主一从同步,传统方式指定文件和位置同步 假设有mysql_1、mysql_2 ,1为master,2为slave,配置如下: master 端的配置文件中加入: server-id=1 log-bin...中是NULL MySQL 配置互为主同步,使用gtid 模式同步 假设 我们目标是 mysql_1 和 mysql_3 互为主mysql_1配置中增加: [mysqld] skip-host-cache...就研究了下,怎么简单的配置主从设置,其实这块有很多细节。再生产环境中配置的话,需要深入的理解同步的机制,在出现同步问题的时候需要能够快速的解决。...问题:同步时跳过无法执行的GTID对应的事务 如果是修复主从复制中的异常,如果是在确认错误可以跳过的情况下,可以使用如下的方式: stop slave; set gtid_next='xxxxxxx:N

    2.5K10

    MySQL主从复制配置

    .000001', MASTER_LOG_POS = 0; mysql>START SLAVE; 查看当前结点的状态 show slave status; 参考 博客 Mysql 主从复制 - 简书...哔哩哔哩 mysql主从复制实战详解_一点课堂(多岸学院)_哔哩哔哩_bilibili 博客:MYSQL同步故障:" SLAVE_SQL_RUNNING:NO" 两种解决办法 MySQL同步故障:"...Slave_SQL_Running:No" 两种解决办法 - 沅来是澧 - 博客园 遇到的问题 如果master结点有数据单没开二进制文件,此时如何实现主从复制?...1)背master数据库到slave数据库 2)开始master二进制文件 3)配置。。。...Mysql 主从复制 - 简书 安装centos7 VMware 安装 Centos7 超详细过程 | 菜鸟教程 安装mysql(亲测) Centos 离线安装 MySQL 详细步骤 | 郝继亮的笔记

    18310

    MySQL主从复制配置

    一、MySQL复制的应用常见场景 读写分离,提高查询访问性能,有效减少主数据库访问压力。 实时灾,主数据库出现故障时,可快速切换到从数据库。...二、MySQL主从复制原理介绍 1、 MySQL异步和半同步复制 传统的MySQL复制提供了一种简单的主-从复制方法。有一个主,以及一个或多个从。...复制需要3个线程(dump、io、sql)完成 3、MySQL主从复制前提 主服务器一定要打开二进制日志 必须两台服务器(或者是多个实例) 从服务器需要一次数据初始化 如果主从服务器都是新搭建的话...%.%’ identified by ‘123456’ with grant option; 9、MySQL编辑配置文件 9.1、master配置文件 vim /etc/my.cnf default-storage-engine...> 注意看红色部分,主从配置完成 ,如果是克隆的虚拟机注意查看 server-uuid,主从的uuid是不一致的,需要自行修改。

    91920

    Mysql主从同步架构配置

    一、mysql主从介绍: MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。...1.1 MySQL主从是基于binlog的,主上须开启binlog才能进行主从主从过程大致有3个步骤: 主将更改操作记录到binlog里。...1.2 主从原理图: image.png Master:主mysql Slave:mysql 当有数据写进主mysql中的时候,就出自动生成一个log dump thread,记录到如上讲的binlog...---- 二、主从配置 – 主Mysql操作(zhdy-03) 2.1 配置my.cnf 在之前配置LAMP和LNMP的时候只是配置了datadir和socket, 现在我们需要增加server-id=...主从配置 – 从Mysql操作(zhdy-02) 3.1 配置my.cnf 配置server-id=132,要求和主不一样。

    3.7K90
    领券