zoukankan      html  css  js  c++  java
  • MySQL主从复制

    一、复制的基本原理

    1、slave会从master读取binlog来进行数据同步

    2、三步骤+原理图

      MySQL复制过程分成三步:
      1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
      2 slave将master的binary log events拷贝到它的中继日志(relay log);
      3 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的

    (1)master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events

    (2)slave将master的binary log events拷贝到它的中继日志(relay log)

    (3)slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的

    二、复制的基本原则

    1、每个slave只有一个master

    2、每个slave只能有一个唯一的服务器ID

    3、每个master可以有多个salve

    三、复制的最大问题

    延时

    四、一主一从常见配置

    1、mysql版本一致且后台以服务运行

    2、主从都配置在[mysqld]结点下,都是小写

    3、主机修改my.ini配置文件

    (1)[必须]主服务器唯一ID

        server-id=1

    (2)[必须]启用二进制日志

        log-bin=自己本地的路径/data/mysqlbin

        log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin

    (3)[可选]启用错误日志

        log-err=自己本地的路径/data/mysqlerr

        log-err=D:/devSoft/MySQLServer5.5/data/mysqlerr

    (4)[可选]根目录

        basedir="自己本地路径"

        basedir="D:/devSoft/MySQLServer5.5/"

    (5)[可选]临时目录

        tmpdir="自己本地路径"

        tmpdir="D:/devSoft/MySQLServer5.5/"

    (6)[可选]数据目录

        datadir="自己本地路径/Data/"

        datadir="D:/devSoft/MySQLServer5.5/Data/"

    (7)read-only=0

        主机,读写都可以

    (8)[可选]设置不要复制的数据库

        binlog-ignore-db=mysql

    (9)[可选]设置需要复制的数据库

        binlog-do-db=需要复制的主数据库名字

      配置实例:

      

    4、从机修改my.cnf配置文件

    (1)[必须]从服务器唯一ID

    (2)[可选]启用二进制日志

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

    主机从机都关闭防火墙:

      windows手动关闭

      关闭虚拟机linux防火墙    service iptables stop

    (3)在Windows主机上建立帐户并授权slave

      ① GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'从机器数据库IP' IDENTIFIED BY '123456';

        

      ② Subtopic

      ③ flush privileges;

      ④ 查询master的状态

        show master status;

     

        记录下File和Position的值

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

     (4)在Linux从机上配置需要复制的主机

      ① CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position数字;

    CHANGE MASTER TO MASTER_HOST='192.168.124.3',
    MASTER_USER='zhangsan',
    MASTER_PASSWORD='123456',
    MASTER_LOG_FILE='mysqlbin.具体数字',MASTER_LOG_POS=具体值;

      

      ② 启动从服务器复制功能

        start slave;

      ③ show slave statusG

        下面两个参数都是Yes,则说明主从配置成功!

        Slave_IO_Running: Yes

        Slave_SQL_Running: Yes

        示例参考:

        

    (5)主机新建库、新建表、insert记录,从机复制

    (6)如何停止从服务复制功能

       stop slave;

  • 相关阅读:
    etcd集群的搭建
    MRTG在Windows平台的安装及使用
    SaltStack数据系统-Pillar详解
    Xpath
    XmlDocument操作
    转:悬挂窗口
    转:不规则按钮实现
    转:C#串口编程
    转:控制ComboBox下拉框的下拉部分宽度,使内容能够显示完全
    转:如何捕获winform程序全局异常?
  • 原文地址:https://www.cnblogs.com/116970u/p/11018148.html
Copyright © 2011-2022 走看看