MySQL之搭建主从复制

搭建MySQL主从复制

  • 克隆虚拟机,一主一从
    • 先将需要克隆的虚拟机停掉,“右键”->“管理”->“克隆”
      MySQL之搭建主从复制_第1张图片
      “创建完整克隆”->“命名、存放位置”->“完成”
      MySQL之搭建主从复制_第2张图片
      等待完成。。。
      需要修改几个点:
      • “网络适配器”->“高级”->“生成”->“确定”
        MySQL之搭建主从复制_第3张图片
        运行虚拟机
      • 修改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主从复制原理
      MySQL之搭建主从复制_第4张图片
  • 启动两台虚拟机:centos7-2(主机)centos7-3(从机)

    • 修改主机配置:

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

      MySQL之搭建主从复制_第5张图片

MySQL之搭建主从复制_第6张图片

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

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

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

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

    CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';
    
    • 如果在这一步报如下错误,请查看
      ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
      
    GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';
    flush privileges;
    
  • 查看log日志及接入点信息
    MySQL之搭建主从复制_第7张图片
    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;
    

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

    start slave;
    show slave status \G
    

    如图,红色框中为Yes即表名成功,如果不是,请查看黄色框中的Error相关报错信息,进行修复。
    MySQL之搭建主从复制_第8张图片

  • 测试

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

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

    MySQL之搭建主从复制_第9张图片

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

    --  重新配置 主
    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;
    
  • 开启完注意查看 从 状态,以确保成功

    show slave status \G
    

其他章节 -> 跳转

end...

你可能感兴趣的:(mysql,linux,mysql,linux,数据库)