Mysql主从模式部署过程

MySQL主从模式可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。本文使用 半同步复制模式
mysql主从复制用途:

  • 实时灾备,用于故障切换(高可用)
  • 读写分离,提供查询服务(读扩展)
  • 数据备份,避免影响业务(高可用)

主从部署必要条件:

  • 从库服务器能连通主库
  • 主库开启binlog日志(设置log-bin参数)
  • 主从server-id不同

1.软件版本和环境:

系统:CentOS7系统

软件 mysql5.7.30安装包:mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

2.各个机器IP和角色

​ 172.18.0.12 – master主库 --负责数据写入

​ 172.18.0.13 – slaver从库1—负责数据读取

​ 172.18.0.14 – slaver从库2 —负责数据读取

2.安装过程:

1.mysql主从数据库安装

  • 安装mysql相关程序包

    rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-5.7.30-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
    
  • 2.初始化数据库,启动mysql服务

    mysqld --initialize --user=mysql
    通过 cat /var/log/mysqld.log  查看初始化的root用户密码
    systemctl start mysqld.service
    
  • master主库配置

    1.设置master主库my.cof文件
    	[mysqld]
    	# log_bin
    	server-id=1
    	log_bin=mysql-bin //开启二进制日志
    	sync-binlog=1
    	relay-log=mysql-relay-log //开启中继日志
    	skip_name_resolve			//关闭名称解析(非必须)
    	binlog-ignore-db=information_schema  //不进行同步的库
    	binlog-ignore-db=sys  //不进行同步的库
    	binlog-ignore-db=performance_schema  //不进行同步的库
    2.重启数据库
    	systemctl restart mysqld
    3.授权访问
    	grant replication slave on *.* to 'root'@'%' identified by 'root';
    	grant all privileges on *.* to 'root'@'%' identified by 'root';
    	flush privileges;
    4.查看状态
    	show master status;
    	记住文件名和pos值,从库设置时需要用到。
    
  • slaver从库配置

    1.配置my.cof文件
        [mysqld]
        # log_bin
        server-id=2
        #开启中继日志
        relay-log=mysql-relay-bin
        #开启二进制日志
        log-bin=mysql-bin
        #启用只读属性
        read_only=1
        #是否自动清空不再需要中继日志
        relay_log_purge = 0
        #关闭名称解析(非必须)
        skip_name_resolve
        #使得更新的数据写进二进制日志中
        log_slave_updates = 1
    2.重启数据库 
    	systemctl restart mysqld
    3.配置从库同步的主库信息
     	change master to master_host='172.18.0.12',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=869;
     4.用主城复制
     	start slave;
    

2.mysql主从半同步复制设置

  • master主库设置
//安装半同步插件
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
//查看半同步设置
mysql> show variables like '%semi%';
//启用半同步复制
mysql> set global rpl_semi_sync_master_enabled=1;
//启用1秒钟同步一次
mysql> set global rpl_semi_sync_master_timeout=1000;
  • slaver库设置
//安装半同步插件
mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
//启用半同步复制
mysql> set global rpl_semi_sync_slave_enabled=1;

2.测试主从半同步复制

  • 主库添加记录
    在这里插入图片描述

  • 从库查看记录
    在这里插入图片描述

  • 查看日志

在这里插入图片描述

已进行半同步复制。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页