• 马哥学习笔记二十六——MySQL主从复制


    配置MySQL复制基本步骤:

      一、master

      1、启用二进制日志

      log-bin = master-bin

      log-bin-index = master-bin.index

      2、选择一个惟一server-id

      server-id = {0-2^32}

      3、创建具有复制权限的用户

      REPLICATION SLAVE

      REPLICATION CLIENT

      二、slave

      1、启用中继日志

      relay-log = relay-log

      relay-log-index =

      2、选择一个惟一的server-id

      server-id = {0-2^32}

      3、连接至主服务器,并开始复制数据;  

      mysql> CHANGER MASTER TO MASTER_HOST='',MASTER_PORT='',MASTER_LOG_FILE='',MASTER_LOG_POS='',MASTER_USER='',MASTER_PASSWORD='';

      mysql> START SLAVE;(启动线程)

      mysql> START SLAVE IO_Thread;  

      mysql> START SLAVE SQL_Thread;

    复制线程:
      master: dump
      slave: IO_Thread, SQL_Thread

    read-only = YES  

      在从服务器上设定,但对具有SUPER权限的用户不生效;

    sync-binlog = ON  

      在主服务器上设定,用于事务安全;

    设置半同步步骤:(插件在/usr/local/mysql/lib/plugin)

      在Master和Slave的mysql命令行运行如下代码:

      # On Master 

      mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; 

      mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1; 

      mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000; 

      # On Slave 

      mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; 

      mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1; 

      mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD; 

      在Master和Slave的my.cnf中编辑:

      # On Master 

      [mysqld] 

      rpl_semi_sync_master_enabled=1 

      rpl_semi_sync_master_timeout=1000 # 1 second 

      # On Slave 

      [mysqld] 

      rpl_semi_sync_slave_enabled=1 

      # 也可通过设置全局变量的方式来设置,如下:

      set global rpl_semi_sync_master_enabled=1

      # 取消加载插件

      mysql> UNINSTALL PLUGIN rpl_semi_sync_master;

      查看从服务器上的semi_sync是否开启:

      mysql> SHOW GLOBAL STATUS LIKE 'rpl_semi%';

      查看主服务器上的semi_sync是否开启,注意clients 变为1 ,证明主从半同步复制连接成功:

      mysql> SHOW GLOBAL STATUS LIKE 'rpl_semi%';

    percona: percona-tools(主从复制管理工具)
      mattkit-tools

    数据库复制过滤

      在主服务器上实现:

      binlog-do-db=mydb

      binlog-ignore-db=mysql

      从服务器:

      replicate_do_db

      rpplicate_ignore_db

      replicate_do_table

      replicate_ignore_table

      replicate_wild_do_table(可以通过通配符匹配)

      replicate_wild_ignore_table

  • 相关阅读:
    python笔记1
    git笔记
    手撸一个简陋直播系统
    spring-boot学习笔记1
    设计模式1--简单工厂模式
    网联:第一章:浏览器生成消息
    php线上预览日志--4.websocket客户端
    php线上预览日志--3.websocket服务部署
    php线上预览日志--2.谷歌插件开发
    php线上预览日志--1.概述
  • 原文地址:https://www.cnblogs.com/wangyongbin/p/3815513.html
Copyright © 2020-2023  润新知