zoukankan      html  css  js  c++  java
  • mysql的主从级联复制的配置

    作者:邓聪聪

      在高级的应用环境中都需要用到高可用,这里配置的是mysql的主从级联复制

      试验环境:

      主节点 192.168.0.101/24

      辅助节点+辅助节点 192.168.0.102/24 ,192.168.0.103/24

      配置(CentOS Linux release 7.6.1810 (Core) ,mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1)

    master配置:

    [mysqld]
    server_id=1
    log-bin=/data/mysql_bin
    binlog_format=row
    skip-name-resolve
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d
    
    [root@mysql-master mariadb]# 

    //1;定义全局服务ID,注意,此ID必须保证唯一性,2;定义2进制日志文件的路径,确保该目录的所属权限,如果不是mysql无法启动mysql服务,3;我这里配置二进制日志文件基于行(3种模式,根据业务需求自行决定)保存,4;配置mysql不参与DNS解析

    MariaDB [(none)]> grant replication slave on *.* to repliuser@'%' identified by '123456';//定义复制用户的权限

    辅助节点:

    [root@mysql-node1 ~]# cat /etc/my.cnf
    [mysqld]
    server_id=2
    read_only=ON
    log-bin=/data/mysql_bin
    log_slave_updates
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d
    
    [root@mysql-node1 ~]# 

    //1;同主节点配置,从节点配置数据库只读权限(root除外),并同步更新主节点的二进制日志文件

    MariaDB [(none)]> CHANGE MASTER TO
        ->   MASTER_HOST='192.168.0.101',//同步的服务器
        ->   MASTER_USER='repliuser',//用户名
        ->   MASTER_PASSWORD='123456',//密码
        ->   MASTER_PORT=3306,//端口
        ->   MASTER_LOG_FILE='mysql_bin.000002',同步服务器上的二进制文件,选择需要同步的内容起点
        ->   MASTER_LOG_POS=245;//起点位置,245位一个新文件的初始位置
    MariaDB [(none)]> start slave;//启动复制进程
    MariaDB [(none)]> show slave statusG//查看进程状态

    从节点:

    [root@mysql-node2 ~]# cat /etc/my.cnf
    [mysqld]
    server_id=3
    read_only=ON
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d
    
    [root@mysql-node2 ~]# 

    // 只需要配置数据库的只读即可

    MariaDB [(none)]> CHANGE MASTER TO
        ->   MASTER_HOST='192.168.0.102',//同步的服务器
        ->   MASTER_USER='repliuser',//用户名
        ->   MASTER_PASSWORD='123456',//密码
        ->   MASTER_PORT=3306,//端口
        ->   MASTER_LOG_FILE='mysql_bin.000002',同步服务器上的二进制文件,选择需要同步的内容起点
        ->   MASTER_LOG_POS=245;//起点位置,245位一个新文件的初始位置
    MariaDB [(none)]> start slave;//启动复制进程
    MariaDB [(none)]> show slave statusG//查看进程状态

     扩展数据库半同步:

    主服务器配置:

    MariaDB [(none)]> install plugin rpl_semi_sync_master soname 'semisync_master.so';
    Query OK, 0 rows affected (0.01 sec)

     MariaDB [(none)]> set global rpl_semi_sync_master_timeout=1000;
     Query OK, 0 rows affected (0.00 sec)

     主、从服务器 /etc/my.cnf

      rpl_semi_sync_master_enabled、rpl_semi_sync_slave_enabled  //开启开机同步

      rpl_semi_sync_master_timeout=2000 //延迟2秒

    从服务器配置:

    MariaDB [(none)]> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';           
    Query OK, 0 rows affected (0.00 sec)

      查询:show global variables like '%semi%'; 

  • 相关阅读:
    如何画出高级感的曼哈顿图,Manhattan++工具介绍
    Failed to open .vcf.gz: could not load index
    Mouse Genome Informatics(MGI)数据库介绍
    JZ落选跟我们有什么关系
    GenTree:基因进化和功能分析
    对性染色体进行关联分析
    媲美GWAS Catalog,囊括45万人数据,778个表型,3千万个位点的公共数据库:GeneATLAS
    DDD理论学习系列(11)-- 工厂
    RabbitMQ知多少
    DDD理论学习系列(10)-- 聚合
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/11069985.html
Copyright © 2011-2022 走看看