• 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%'; 

  • 相关阅读:
    vue-router在两个以上子路由的情况下,跳转出错
    全局window下添加可变量
    nuxtjs 环境中添加全局axios
    nuxt.js 初始化 npm run dev 报错
    replace的回调函数。
    JS面向对象的类 实例化与继承
    DOM事件: DOM事件级别、DOM事件流、DOM事件模型、DOM事件捕获过程、自定义事件
    sync 简单实现 父子组件的双向绑定
    cube-ui 重构饿了吗Webapp的 scroll-nav域名插槽问题
    在element table中导出指定列信息
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/11069985.html
Copyright © 2020-2023  润新知