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

    1. 主从复制原理:

      slave(从mysql数据库)通过I/O线程读取Master(主mysql数据库),读取binary log events 并写入中继日志(relay log),slave 执行中继日志中事件,将中继日志中日志记录一条条执行到本地存储,从而通过这两个线程主从数据同步

    2.步骤

      1)准备2台机器(master:192.168.56.101;slave:192.168.56.102)

       2)在master主机

        2.1 修改C:ProgramDataMySQLMySQL Server 8.0my.ini文件(这个文件一般都在这个位置,修改完此文件都需要重启mysql服务)

          修改:server-id=1(这里的id值需与slave中相应位置不同,表明不同服务)

          修改:log-bin="WIN-PO1I559INRE-bin"(这里填写路径,开启了binlog机制同时配置log-bin日志路径在相对路径WIN-PO1I559INRE-bin下)

          (binlog_format=mixed--两种方式混合
          binlog-do-db = testdb --做主从同步的数据库名
          binlog-ignore-db = mysql --指定同步的数据库
          binlog-ignore-db = performance_schema --指定忽略的数据库
          binlog-ignore-db = information_schema)这几个配置可做更细节的配置

          重启mysql:   net restart mysql可以在services页面手动重启mysql服务),重启后即可看到在如下路径新增了***-bin.00002,这就是日志文件

        2.2 在master主机上,为slave配置用户名,密码,同时赋予slave权限

          创建用户:create user 'repl'@'192.168.56.102' identified by '!@34QWer';(其中192.168.56.102是slave的ip地址,这样在slave主机中就可以通过repl访问master上的日志文件了)

          分配权限:grant replication slave on *.* to 'repl'@'192.168.56.102';

          让创建用户分配权限生效需要执行:flush privileges;

      3)在slave主机

        3.1 修改C:ProgramDataMySQLMySQL Server 8.0my.ini文件(这个文件一般都在这个位置,修改完此文件都需要重启mysql服务)

          修改:server-id=2(不能与master的server-id一样)

          修改:如果log-bin也被配置上了需要手动注释上,这里不需要配置

          重启mysql: 可以在services页面手动重启mysql服务

        3.2 开始配置slave能够拿到想要监听的master日志文件(bin-log),执行以下命令

          执行stop slave 先停止同步操作;

          在修改slave主机的master为我们想要监听的master这里是(192.168.56.101):

            CHANGE MASTER TO MASTER_HOST='192.168.56.101', MASTER_USER='repl', MASTER_PASSWORD='!@34QWer', MASTER_LOG_FILE='WIN-PO1I559INRE-bin.000004', MASTER_LOG_POS=1098;

            (192.168.56.101:主机master地址,repl:master主机上分配的用户,master-log-file:master上的日志文件名称可通过在master主机上执行show master status 查看到日志文件名称和下面一个变量postion值)

          配置完成后,执行start slave 开始同步操作。

      4)验证是否配置成功

        在slave机器上执行:show slave status;

        发现这两个字段是yes;

        在master机器上执行:show processlist;看到下面内容

         最后在测试一下,即可判断主从复制做好!

      5)可能出现的错误

        当执行show slave status;后 其中Slave_IO_Running 为running时,说明没有配置成功,处理,具体参考

        https://cloud.tencent.com/info/3ce6fb6c2d65bd337b37e591b46a3557.html

    参考:链接: https://pan.baidu.com/s/1IFzijJLI_zJedi8t1otxdQ 提取码: v1ve

  • 相关阅读:
    转 UICollectionView 详解
    springboot配置ssl证书
    服务器ganglia安装(带有登录验证)
    eureka配置说明
    Servlet中获取请求参数问题
    apidoc学习(接口文档定义取代word)
    markdown语法
    JVM分析
    ftp上传或下载文件工具类
    ubuntu命令安装
  • 原文地址:https://www.cnblogs.com/xiaoping1993/p/10136435.html
Copyright © 2011-2022 走看看