• MySQL之搭建主从复制


    搭建MySQL主从复制

    • 克隆虚拟机,一主一从
      • 先将需要克隆的虚拟机停掉,“右键”->“管理”->“克隆”
        在这里插入图片描述
        “创建完整克隆”->“命名、存放位置”->“完成”
        在这里插入图片描述
        等待完成。。。
        需要修改几个点:
        • “网络适配器”->“高级”->“生成”->“确定”
          在这里插入图片描述
          运行虚拟机
        • 修改IP地址和UUID,命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
          IP地址和UUID随意更改即可
          重启网络,命令:systemctl restart network
        • 修改MySQL的UUID,命令:vim /var/lib/mysql/auto.cnf
          UUID随意更改
          重启MySQL,命令:systemctl restart mysqld

    至此虚拟机克隆完成


    • 搭建MySQL主从复制

      • MySQL主从复制原理
        在这里插入图片描述
    • 启动两台虚拟机:centos7-2(主机)centos7-3(从机)

      • 修改主机配置:

        vim /etc/my.cnf
        
        • 1
        #主服务器唯一id
        server-id=1
        #启动二进制日志
        log-bin=mysql-bin
        #设置不需要复制的数据库(可设置多个)
        binlog-ignore-db=数据库名称
        #设置需要复制的数据库
        binlog-do-db=数据库名称
        #设置binlog格式
        binlog_format=STATEMENT
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10

        在这里插入图片描述

    在这里插入图片描述

    ==***注意:需要复制的数据库是还没有创建的,因为mysql的主从复制是从接入的那一刻开始,不是复制全部***==
    
    • 1
    • 修改从机配置:

      vim /etc/my.cnf
      
      • 1
      #从服务器唯一id
      server-id=2
      #启动中继日志
      relay-log=mysql-relay
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述
      重启两台服务器的mysql服务并查看状态,确保启动成功

      systemctl restart mysqld
      systemctl status mysqld
      
      • 1
      • 2
    • 授权从机复制数据

      CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';
      
      • 1
      • 如果在这一步报如下错误,请查看
        ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
        
        • 1
      GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';
      flush privileges;
      
      • 1
      • 2
    • 查看log日志及接入点信息
      在这里插入图片描述
      File:为log日志
      Position:为接入点
      Binlog_Do_DB:为要复制的库名
      Binlog_Ignore_DB:为不要复制的库名
      Binlog_Do_DB和Binlog_Ignore_DB设置一个即可

    切到从机执行

    • 对应修改后复制到从机执行

      CHANGE MASTER TO MASTER_HOST='192.168.171.100',
      MASTER_USER='slave1',
      MASTER_PASSWORD='123456',
      MASTER_LOG_FILE='mysql-bin.000002',
      MASTER_lOG_POS=751;
      
      • 1
      • 2
      • 3
      • 4
      • 5

      启动复制功能并查看主从复制状态,命令:

      start slave;
      show slave status \G
      
      • 1
      • 2

      如图,红色框中为Yes即表名成功,如果不是,请查看黄色框中的Error相关报错信息,进行修复。
      在这里插入图片描述

    • 测试

      • 从主库创建名为 mycat_01 的数据库,到从库查看。
        此处的 mycat_01是我设置的需要复制的库名,需要根据自己的修改。
        主库命令:
        CREATE DATABASE `mycat_01` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
        
        • 1
        从库命令:
        show databases;
        
        • 1
        在这里插入图片描述
    • 停止 从 服务复制功能
      注意:这里的命令需要切换到3306端口,也就是mysql中执行,包括停止从复制,重新配置 主 ,开启从复制
      停之前记得记录 Position 参数

      -- 查看当前master信息,记录 Position
      show master status \G
      -- 停止从复制
      stop slave;
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述

    • 重新配置 主 并开启从复制

      --  重新配置 主
      reset slave;
      
      -- 配置连接 主 的相关信息
      -- CHANGE MASTER TO MASTER_HOST='192.168.171.100',
      -- MASTER_USER='slave1',
      -- MASTER_PASSWORD='shuo',
      -- MASTER_LOG_FILE='mysql-bin.000001',
      -- MASTER_lOG_POS=154;
      
      -- 开启从复制
      start slave;
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    • 开启完注意查看 从 状态,以确保成功

      show slave status \G
      
      • 1

    其他章节 -> 跳转

    end...
    
    • 1
  • 相关阅读:
    使用3DMAX制作一枚手雷
    Maven中央仓库
    十、Docker 常用命令
    原来引用还有这么多不为人知的秘密呢?
    Java相关的序列化与反序列化
    WEIXIN day_05(8.22) 学子影院项目实践1
    Vue 2与Vue 3生命周期钩子的对比分析
    【Java面试】5年去某团面试竟遇到这么简单的题?如何破坏双亲委派模型?看看高手是如何回答的
    手写一个线程池
    在ubuntu16.04系统利用eBPF获取TCP网络状态信息
  • 原文地址:https://blog.csdn.net/weixin_45881674/article/details/126392392