内容来源于网络

使用replicate_do_db和replicate_ignore_db时有一个隐患,跨库更新时会出错

如设置 replicate_do_db=test
use mysql;
update test.table1 set ......
第二句将不会被执行

如设置 replicate_ignore_db=mysql
use mysql;
update test.table1 set ......
第二句会被忽略执行

原因是设置replicate_do_db或replicate_ignore_db后,MySQL执行sql前检查的是当前默认数据库,所以跨库更新语句被忽略。

可以使用replicate_wild_do_table和replicate_wild_ignore_table来代替

replicate_wild_do_table=test.%

replicate_wild_ignore_table=mysql.%

这样就可以避免出现上述问题了

实验如下:

    1.  
      第一种情况
    2.  
      从库:
    3.  
      replicate-ignore-db = mysql
    4.  
      主库:
    5.  
      use mysql
    6.  
      CREATE TABLE test.testrepl1(
    7.  
      id int(5))ENGINE=INNODB DEFAULT CHARSET=UTF8;
    8.  
      从库不会同步。坑
    9.  
       
    10.  
      第二种情况
    11.  
      从库:
    12.  
      replicate-ignore-db = mysql
    13.  
       
    14.  
      主库:
    15.  
      use test
    16.  
      CREATE TABLE mysql.testrepl2(
    17.  
      id int(5))ENGINE=INNODB DEFAULT CHARSET=UTF8;
    18.  
      从库不会同步。
    19.  
       
    20.  
       
    21.  
      第三种情况
    22.  
      use test
    23.  
      update mysql.user set user = 'testuser5' where user = 'testuser1';
    24.  
      从库会同步
    25.  
       
    26.  
      第四种情况
    27.  
      grant all on *.* to testnowild@'%' identified by 'ge0513.hudie';
    28.  
      从库会同步
    29.  
       
    30.  
      第二大类:
    31.  
      Replicate_Wild_Ignore_Table: mysql.%
    32.  
       
    33.  
      第五种情况
    34.  
      主库:
    35.  
      use test
    36.  
      update mysql.user set user = 'testuser1' where user = 'testuser5';
    37.  
      从库没有同步。
    38.  
       
    39.  
      第六种情况
    40.  
      主库:
    41.  
      grant all on *.* to testwild@'%' identified by 'ge0513.hudie';
    42.  
      从库没有同步。

小心使用replicate_do_db和replicate_ignore_db的更多相关文章

  1. mysql中replicate_wild_do_table和replicate_do_db区别

    使用replicate_do_db和replicate_ignore_db时有一个隐患,跨库更新时会出错. 如在Master(主)服务器上设置 replicate_do_db=test(my.conf ...

  2. mysql 主主互备

    双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到 ...

  3. percona-toolkit 之 【pt-slave-delay】说明

    摘要: 在主从复制的架构中,正常情况下主上操作的记录也会在从上进行操作,虽说是异步复制,但操作会“实时”的同步到从.比如在主上不小心误操作了,还没等反应过来从上也会马上执行误操作,后期只有通过二进制或 ...

  4. show slave各项参数解释

    how slave status 各个参数的解释 -- mysql 分类: mysql基础2012-08-23 11:03 2315人阅读 评论(0) 收藏 举报 服务器sslfilesqltable ...

  5. 12-MySQL DBA笔记-MySQL复制

    第12章 MySQL复制 本章将为读者讲述MySQL的复制技术,首先,介绍最基础的主从复制,它是其他所有复制技术的基础,接着再为读者讲述各种复制架构的搭建,最后,列举了一些常见的复制问题及处理方式.复 ...

  6. MySQL主从同步、读写分离配置步骤、问题解决笔记

    MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经 ...

  7. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  8. Mysql5.7.13主从同步(复制)配置

    主从同步是分布式mysql数据库相当重要的配置,现在我在虚拟机上完成主从配置,系统是CenterOS6.5,mysql版本是5.7.13 主服务器的ip是192.168.19.139 副服务器的ip是 ...

  9. MySQL学习笔记十七:复制特性

    一.MySQL的复制是将主数据库(master)的数据复制到从(slave)数据库上,专业一点讲就是将主数据库DDL和DML操作的二进制日志传到从库上,然后从库对这些二进制日志进行重做,使得主数据库与 ...

随机推荐

  1. sql优化1

    1.mysql里面的索引 对于 like关键字匹配查询,适用于like name%,但是不适用于%name%;添加索引时候注意这点 2.mysql的limit分页 ,limit 2,5;表示每页显示5 ...

  2. intellij-maven-imports-have-broken-classpath

    公司自己搭得maven私服,然后使用git下载 公司mvn的依赖包时候,报错: 之后再idea里面发现依赖的jar包 有红色的错误信息,提示 maven imports have broken cla ...

  3. golang rest api example

    package main import ( "net/http" "github.com/gin-gonic/gin" "github.com/jin ...

  4. Hadoop High Availability高可用

    HDFS HA Namenode HA  详解 hadoop2.x 之后,Clouera 提出了 QJM/Qurom Journal Manager,这是一个基于 Paxos 算法(分布式一致性算法) ...

  5. 一次查找sqlserver死锁的经历

    查找bug是程序员的家常便饭,我身边的人喜欢让用户来重现问题.当然他们也会从正式服务器上下载错误log,然后尝试分析log,不过当错误不是那种不经思考就可识别的情况,他们就会将问题推向用户,甚至怪罪程 ...

  6. GridControl 应用 z

    DevExpress学习系列(控件篇):GridControl的基本应用 一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=fal ...

  7. Linux账号管理和ACL

    by zjmyster version :1.2 Linux账号管理和ACL权限设置: 主要相关配置文件:/etc/passwd /etc/shadow /etc/group /etc/gshadow ...

  8. c# HttpWebRequest与HttpWebResponse

    [转]c# HttpWebRequest与HttpWebResponse 绝技 如果你想做一些,抓取,或者是自动获取的功能,那么就跟我一起来学习一下Http请求吧. 本文章会对Http请求时的Get和 ...

  9. Redis 缓存穿透

    Redis 缓存穿透 https://www.cnblogs.com/jiekzou/p/9212114.html 场景描述:我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容 ...

  10. [由于远程方关闭传输流,身份验证失败]一次处理支付接口bug记录

    因公司系统升级,出现突然有些银行卡不能支付的情况,最开始排查发现是第三方平台接口返回有问题: 返回如下: 从11月7日下午开始一直联系第三方,第三方开始排查,一直说是数据格式有问题. 修改格式以后问题 ...