博客
关于我
【Mysql】 高级优化 --- Mysql 主从复制
阅读量:284 次
发布时间:2019-03-01

本文共 1534 字,大约阅读时间需要 5 分钟。

MySQL 主从复制详解

一、复制的基本原理

MySQL 主从复制的核心机制基于两台服务器:主服务器(Master)和从服务器(Slave)。以下是其工作原理:

  • 主服务器记录变更:主服务器将数据库变更记录到二进制日志(Binary Log)。这些记录包含了数据更改的具体时间和事件。

  • 从服务器拷贝日志:从服务器连接到主服务器,获取其二进制日志内容,并将其拷贝到中继日志(Relay Log)。

  • 从服务器应用变更:从服务器根据中继日志中的记录,重放这些变更操作,将数据变更应用到自己的数据库中。

  • MySQL 复制采用异步且串行化的方式,确保数据的一致性。

    二、复制的基本原则

    MySQL 主从复制遵循以下基本原则:

  • 单一主服务器:每个从服务器只能有一个主服务器。

  • 唯一的服务器ID:每个从服务器必须有唯一的服务器ID,确保主从关系无误。

  • 多个从服务器:主服务器可以有多个从服务器,提高数据的冗余和负载均衡能力。

  • 三、复制的最大问题

    在实际应用中,MySQL 主从复制可能面临以下问题:

  • 延迟:由于数据异步复制,可能导致数据不一致。

  • 网络连接不稳定:网络问题可能导致二进制日志的传输中断。

  • 配置错误:如服务器ID冲突、日志路径错误等问题,会导致复制失败。

  • 四、一主一从常见配置

    1. MySQL 版本一致

    确保主从服务器使用相同版本的MySQL,避免兼容性问题。

    2. 后台服务运行

    两台服务器应以后台服务运行,不影响正常业务处理。

    3. 配置文件路径

    主机和从机的配置文件路径需一致,建议使用小写字母。

    4. 防火墙设置

    主从服务器需相互开放相关端口,确保通信畅通。

    5. 用户权限设置

    为从服务器账户授予REPLICATION SLAVE权限,确保复制权限。

    6. 二进制日志配置

    确保主服务器启用二进制日志,并指定正确的存储路径。

    7. 数据库选择

    可选择性配置复制的具体数据库,减少资源消耗。

    8. 数据同步策略

    根据业务需求,制定合理的数据同步策略,避免高负载。

    五、详细配置步骤

    1. 主服务器配置

    my.ini 中添加以下设置:

    [server]server-id=1log-bin=mysqlbindatadir=/var/lib/mysql/data

    2. 从服务器配置

    my.cnf 中添加以下设置:

    [server]server-id=2log-bin=/var/lib/mysql/mysqlbin

    3. 用户权限

    在主服务器执行:

    GRANT REPLICATION SLAVE ON *.* TO 'username'@'from_host' IDENTIFIED BY 'password';

    4. 主从同步

    从服务器执行:

    CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='username', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysqlbin.000001', MASTER_LOG_POS=1070;

    5. 启动复制

    从服务器执行:

    START SLAVE;

    6. 验证状态

    执行:

    SHOW SLAVE STATUS\G

    确保 Slave_IO_RunningSlave_SQL_Running 均为 "Yes"。

    六、常见错误处理

  • 网络连接问题:检查防火墙设置,确保端口开放。

  • 日志文件缺失:确认主服务器的二进制日志路径和文件名。

  • 权限不足:检查从服务器账户权限是否正确。

  • 延迟问题:优化网络带宽,减少复制压力。

  • 通过以上配置和优化,可以实现稳定、高效的MySQL主从复制,确保数据的一致性和可用性。

    转载地址:http://lmao.baihongyu.com/

    你可能感兴趣的文章
    OpenCV图像的深浅拷贝
    查看>>
    OpenCV在Google Colboratory中不起作用
    查看>>
    OpenCV学习(13) 细化算法(1)(转)
    查看>>
    OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
    查看>>
    OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
    查看>>
    OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
    查看>>
    OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
    查看>>
    OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比
    查看>>
    OpenCV学堂 | YOLOv8官方团队宣布YOLOv11 发布了
    查看>>
    OpenCV学堂 | YOLOv8实战 | 荧光显微镜细胞图像检测
    查看>>
    OpenCV学堂 | 汇总 | 深度学习图像去模糊技术与模型
    查看>>
    OpenCV安装
    查看>>
    OpenCV官方文档 理解k - means聚类
    查看>>
    opencv实现多路播放
    查看>>
    opencv常用函数
    查看>>
    OpenCV探索
    查看>>
    OpenCV添加中文(五)
    查看>>
    opencv源码查看
    查看>>
    OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
    查看>>
    opencv特征提取1-Harris角点检测
    查看>>