博客
关于我
2.5 lnmp架构_MySQL主从复制
阅读量:270 次
发布时间:2019-03-01

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

MySQL 主从复制详解

复制原理

MySQL 中的二进制日志 (bin log) 记录了所有修改数据库的 SQL 语句,包括插入、更新、删除、创建/修改/删除表、授权等操作。主从复制的核心原理是通过将主节点的二进制日志复制到从节点,并在从节点上执行这些日志中的操作,从而实现数据的一致性。

复制过程

必要条件

  • 主节点必须启用二进制日志,记录所有修改数据库的事件。
  • 从节点需要配置合适的二进制日志和中继日志设置。

主节点配置

  • 启用二进制日志:

    log_bin = mysql-bin
  • 设置唯一的服务器 ID:

    server-id = 1
  • 示例配置文件:

    [mysqld]server-id=1log-bin=mysql-bin
  • 重启主节点并查看状态:

    /etc/init.d/mysqld restart

    查看主节点状态:

    mysql -p -e "SHOW MASTER STATUS"
  • 从节点配置

  • 配置文件示例:

    [mysqld]server-id=2log_bin=mysql-binrelay_log=mysql-relay-binlog_slave_updates=1read_only=1
  • 启动从节点的复制:

    CHANGE MASTER TO MASTER_HOST='172.25.21.2', MASTER_USER='repl', MASTER_PASSWORD='westos', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=437;START SLAVE;
  • 查看从节点状态:

    mysql -p -e "SHOW SLAVE STATUS\G"
  • 复制过程详解

  • 主节点:

    • 启动 dump thread 用于向从节点发送二进制日志。
    • 从节点作为客户端通过 I/O thread 请求主节点的二进制日志。
  • 从节点:

    • 接收主节点的日志数据并写入中继日志 (relay log)。
    • 启动 SQL thread 执行中继日志中的操作。
  • 日志文件管理:

    • 主节点生成 mysql-bin.000001、mysql-bin.000002 等二进制日志文件。
    • 从节点生成 server2-relay-bin.000001 等中继日志文件。
  • 测试与验证

    操作步骤

  • 在主节点中创建数据库:

    mysql -pwestos -e "create database westos;"
  • 查看从节点的数据库列表:

    mysql -pwestos -e "show databases;"
  • 重启主节点和从节点,确保复制完成:

    /etc/init.d/mysqld restart
  • 查看从节点的数据库列表是否与主节点一致:

    mysql -pwestos -e "show databases;"
  • 注意事项

  • 二进制日志文件:

    • 主节点的二进制日志文件默认命名为 mysql-bin.000001、mysql-bin.000002 等。
    • 从节点的中继日志文件命名为 server2-relay-bin.000001 等。
  • 权限设置:

    • 确保从节点的用户名和密码配置正确。
    • 使用 GRANT REPLICATION SLAVE ON *.* 授权从节点访问主节点的二进制日志。
  • 数据一致性:

    • 确保主节点的二进制日志包含所有修改操作。
    • 从节点的复制线程完成后,数据应与主节点保持一致。
  • 性能优化:

    • 使用 read_only 避免直接修改从节点数据。
    • 配置合适的 relay_log 和 log_slave_updates 参数,确保复制高效稳定。
  • 通过以上步骤,可以实现MySQL的主从复制,确保数据在主从节点之间的一致性和高效同步。

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

    你可能感兴趣的文章
    python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
    查看>>
    Python十进制&;包提供错误的结果
    查看>>
    Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
    查看>>
    Python加速运行技巧
    查看>>
    python办公自动化基础遍历文件夹
    查看>>
    python办公自动化基础输出文件和文件夹
    查看>>
    python办公自动化基础搜索文件
    查看>>
    python知识:@classmethod和@staticmethod的异同
    查看>>
    python前端之css
    查看>>
    Python制作进度条,原来有这么多方法
    查看>>
    Python制作简单的学生成绩管理系统
    查看>>
    python制作甘特图的基本知识(附Demo)
    查看>>
    python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
    查看>>
    Python到底能做什么?它的优点在哪?
    查看>>
    python利用pytorch库导出图像分割算子
    查看>>
    python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
    查看>>
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>