博客
关于我
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.000001mysql-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.000001mysql-bin.000002 等。
    • 从节点的中继日志文件命名为 server2-relay-bin.000001 等。
  • 权限设置

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

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

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

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

    你可能感兴趣的文章
    PostgreSQL学习笔记:PostgreSQL vs MySQL
    查看>>
    PostgreSQL实现shape数据转geojson数据(地图工具篇.18)
    查看>>
    PostgreSQL导入shape数据(地图工具篇.10)
    查看>>
    PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
    查看>>
    PostGreSql工作笔记004---PostGreSql修改密码_windows和linux下修改
    查看>>
    Postgresql常用命令行操作_以及Navicat操作PostGis时的问题_自动截取长度_WKB structure does not match exp---PostgreSQL工作笔记005
    查看>>
    PostgreSQL忘记密码
    查看>>
    PostgreSQL数据库pg_dump命令行不输入密码的方法
    查看>>
    PostgreSQL新手入门
    查看>>
    postgresql树状结构查询示例
    查看>>
    PostgreSQL流复制参数max_wal_senders详解
    查看>>
    postgresql流复制配置
    查看>>
    PostgreSQL清空表并保留表结构、清空数据库还原数据库为新建时的状态的方法
    查看>>
    PostgreSQL的 initdb 源代码分析之九
    查看>>
    PostgreSQL的安装与使用指南
    查看>>
    postgresql编译安装及配置
    查看>>
    Postgresql运维常用命令_登录_权限设置_创建用户_创建数据库_创建postgis数据库_远程连接---Postgresql工作笔记009
    查看>>
    PostgreSQL远程连接配置
    查看>>
    PostgreSQL远程连接,发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录
    查看>>
    PostgreSQL配置文件--AUTOVACUUM参数
    查看>>