美文网首页db
Centos 7 从0到1搭建Mysql8.0.16主从

Centos 7 从0到1搭建Mysql8.0.16主从

作者: captainLii | 来源:发表于2019-12-20 21:37 被阅读0次

    前言

    • 复制(AB)原理
      • master将数据变更记录存放到指定binary log(二进制日志),就是配置文件log-bin指定的文件,这些记录叫做binary log events(二进制日志事件)。
      • slave通过I/O线程读取master中的binary log events并写入到它的relay log(中继日志)。
      • slave 把中继日志中的事件一条一条的在再执行一次,从而完成数据存入。

    准备

    • 两台Centos7服务器、安装相同版本的Mysql8.0.16(安装参考
    • 创建的库与表也要保持一致

    创建库脚本

    # 创建库
    CREATE DATABASE `captain` CHARACTER SET utf8 COLLATE utf8_general_ci;
    # 创建表
    CREATE TABLE `visitor` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
      `name` varchar(50) DEFAULT NULL COMMENT '访客',
      `phone` varchar(11) DEFAULT NULL COMMENT '手机号码',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='来访用户表';
    

    配置master的my.cnf

    命令:# vim /etc/my.cnf

    • 在(master)my.cnf文件中加入如下配置内容
    log-bin=mysql-bin
    server-id=1
    
    master

    *创建用于复制操作的用户
    在(master)主节点创建一个用户capmas,用于(slaver)从节点链接主节点时使用。

    命令: # use mysql
    # CREATE USER 'capmas'@'45.32.20.84' IDENTIFIED WITH mysql_native_password BY 'Captain@1888';
    # GRANT REPLICATION SLAVE ON . TO 'capmas'@'45.32.20.84';
    # flush privileges;

    创建用户&授权
    • 获取(master)主节点当前binary log文件名和位置(position)

    命令:SHOW MASTER STATUS;

    binary log - position

    配置slave的my.cnf

    命令:# vim /etc/my.cnf

    • 在配置中加入如下内容
    server-id=2
    
    • 在(slave)从节点上设置主节点参数

    命令:# CHANGE MASTER TO
    MASTER_HOST='207.14.99.72',
    MASTER_USER='capmas',
    MASTER_PASSWORD='Captai33&1888',
    MASTER_LOG_FILE='binlog.000001',
    MASTER_LOG_POS=5393;

    • 查看(slave)从节点同步状态(以下命令带上\G)

    命令: # show slave status\G;


    • 设置从机的server_id为2
      因为在MySQL主从结构中,从机上的server_id和主机上的server_id不能相同
      • 查看从库的server_id
        命令: # show variables like 'server_id';
    slave
    • 设置从机的server_id为2

    命令: # set global server_id=2;

    • (在slave)开启主从同步

    命令:# start slave;

    • 查看状态

    命令: # show slave status\G;

    验证

    • 在(master)主机上执行以下语句
    INSERT INTO `visitor` VALUES ('1', '林小小', '18878476666', '2019-12-21 21:44:44', '2019-12-21 21:44:44');
    
    master

    相关文章

      网友评论

        本文标题:Centos 7 从0到1搭建Mysql8.0.16主从

        本文链接:https://www.haomeiwen.com/subject/cdnbnctx.html