zoukankan      html  css  js  c++  java
  • 马哥学习笔记二十六——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

  • 相关阅读:
    Android 如何处理崩溃的异常
    体验下Xcode5与ios7
    IOS 改变导航栏返回按钮的标题
    android之HttpURLConnection
    android异步加载图片
    android 从服务器上获取APK下载安装
    android AsyncTask异步下载并更新进度条
    android 四种堆状态
    Windows Azure 的开源 DNA
    mysql 只给更新表的某个字段的授权
  • 原文地址:https://www.cnblogs.com/wangyongbin/p/3815513.html
Copyright © 2011-2022 走看看