数据库
首页 > 数据库> > MySQL 主从同步架构中你不知道的“坑”(完结篇)

MySQL 主从同步架构中你不知道的“坑”(完结篇)

作者:互联网

               


图片


前言导读

之前写出一篇文章也是关于这个主从同步架构的“坑”,具体链接如下

MySQL 主从同步架构中你不知道的“坑”

此篇算是接上一篇文章的后续介绍,介绍下在指定同步库的情况一些所遇到的“坑”


指定同步库情况


1、binlog_format= ROW模式‍


图片


图片


mysql> use testdb;

Database changed

mysql> show tables;

+------------------+

| Tables_in_testdb |

+------------------+

| test01      |

| test1      |

+------------------+

3 rows in set (0.00 sec)

 

mysql> insert into test1 values('zhng','man');

Query OK, 1 row affected (0.05 sec)

 

mysql> insert into test1 values('meimei','woman');

Query OK, 1 row affected (0.04 sec)

 

mysql> select * from test1;

+--------+-------+

| id  | name  |

+--------+-------+

| zhang | man  |

| zhng | man   |

| meimei | woman |

+--------+-------+

3 rows in set (0.00 sec)

 

从库查看

mysql> use testdb;

Database changed

mysql> show tables;

+------------------+

| Tables_in_testdb |

+------------------+

| test01      |

| test1      |

+------------------+

2 rows in set (0.01 sec)

 

mysql> select * from test1;

+--------+-------+

| id  | name  |

+--------+-------+

| zhang | man  |

| zhng | man  |

| meimei | woman |

+--------+-------+

3 rows in set (0.01 sec)

 

2、binlog_format= STATEMENT模式‍


图片

图片



主库配置如下

binlog-do-db = testdb

从库配置如下

replicate-wild-do-table = testdb.%

主库操作

mysql> create database testdb;

Query OK, 1 row affected (0.01 sec)

 

mysql> use testdb;

Database changed

mysql> create table test01 (

    -> id varchar(10) not null,

    -> name varchar(10) not null

    -> );

Query OK, 0 rows affected (0.04 sec)

 

mysql> insert into test01 values('zhang','man');

Query OK, 1 row affected (0.01 sec)

 

mysql> select * from testdb.test01;

+-------+------+

| id  | name |

+-------+------+

| zhang | man  |

+-------+------+

1 row in set (0.00 sec)


从库查看

mysql> use testdb;

Database changed

mysql> select * from test01;

+-------+------+

| id  | name |

+-------+------+

| zhang | man  |

+-------+------+

1 row in set (0.00 sec)

 

测试在不指定忽略库的情况下默认库是否会同步数据

mysql> create user testdb_user;

Query OK, 0 rows affected (0.03 sec)

 

mysql> select user from mysql.user;

+-------------+

| user    |

+-------------+

| testdb_user |

| mysql.sys |

| root    |

+-------------+

 

[root@mysql-s ~]# mysql -uroot -p -e "select user from mysql.user;"

Enter password:

+-----------+

| user   |

+-----------+

| mysql.sys |

| root   |

+-----------+

注:默认的库的数据没有被同步


推荐阅读


(多图慎入)图解菜鸟到大拿实现财务自由走向人生巅峰之路

TB级(小白到大牛之路)技术视频资源福利大放送

MySQL集群高可用架构之MHA

LVS负载均衡集群架构

一次实际生产需求引发的“胡思乱想”的后果

开源组件ELK日志系统配置与管理

Xtrabackup实现数据的备份与恢复

浅谈MySQL集群高可用架构




标签:test1,完结篇,MySQL,sec,user,mysql,testdb,主从,man
来源: https://blog.51cto.com/15127557/2669082