• MySQL主从复制


    1、基本原理

      从机(slave)会从主机(master)读取binlog来进行数据同步,用于读写分离操作,注意更新后不能马上读取,否则可能会读不到。同步数据很快,正常毫秒级。

      三步骤:

      1. 主机生成一个二进制日志文件;
      2. 从机读取后写入一个relay-log中继日志;
      3. 再去读取这个文件进行数据同步.;

    2、基本原则

    1. 每个slave只有一个master;
    2. 每个slave只能有一个唯一的服务器ID;
    3. 每个master可以有多个salve;

    3、最大问题

      延时

    4、一主一从常见配置

      4.1 mysql版本一致且后台以服务运行;

      4.2 主从都配置在【mysqld】节点下,都是小写;

      4.3 主机修改my.ini配置文件;

      1. 设置主服务器唯一ID:server-id = 1;

      2. 启用二进制日志:log-bin=自己本地的路径/data/mysqlbin;

      3. 设置不要复制的数据库:binlog-ignore-db=mysql;

      4. 设置需要复制的数据库:binlog-do-db=需要复制的主数据库名字;

      5. 设置logbin格式:binlog_format=STATEMENT(默认);//有三种模式:STATEMENT(函数获取值不一致问题)、ROW(效率问题)、MIXED;

      4.4 mysql主从复制起始时,从机不继承主机数据;

      4.4 从机配置文件修改my.cnf的【mysqld】栏目下

      1. 设置服务器唯一ID:server-id = 2;

      2. 设置中继日志:relay-log=mysql-relay;

      4.5 因修改过配置文件,请主机+从机都重启后台mysql服务;

      4.6 主机从机都关闭防火墙:linux防火墙 systemctl stop firewalld;

      4.7 主机上建立账户并授权slave:

     GRANT PERLICATION SLAVE ON *.* TP 'slave001'@'从机数据库ip或%' IDENTIFIED BY '123456';

    #查询master状态:
    show master status;

        执行完此步骤后不要再操作主服务器mysql,防止主服务器状态值变化;

      4.8 在从机上配置需要复制的主机:

    #1.配置需要复制的主机
    CHANGE MASTER TO MASTER_HOST=IP, MASTER_USER='用户', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysqlbin.具体数字',MATER_LOG_POS=具体值;
    
    #有问题可以
    stop slave; //关闭已配置的slave
    reset master; //重置主机
    
    #2.启动从服务器复制功能
    start slave;
    
    #3.查看状态
    show slave statusG

      4.9 测试:主机新建库、新建表、insert记录,从机复制;

    5、MyCat管理读写分类、分库分表操作

      5.1 是什么

        数据库中间件,前身是阿里的cobar;

      5.2 干什么的

        读写分离;

        数据分片:垂直拆分、水平拆分、垂直+水平拆分;

        多数据源整合

      5.3 安装启动

       5.4 读写分离

       5.5 分库分表

  • 相关阅读:
    【 SSH 配置参考】
    【 SSH 实例】使用ssh开发的简单项目
    【 Hibernate 】Hibernate的session更新和删除失败问题
    【 SSH 整合】Spring、Struts、Hibernate基本整合
    Tower是个不错的项目管理开放平台
    随便写写,四年多了第一次在博客园上发表
    asp.net获取服务器绝对路径和相对路径
    342. 4的幂
    283. 移动零
    268. 缺失数字
  • 原文地址:https://www.cnblogs.com/xp2h/p/12463338.html
Copyright © 2020-2023  润新知