MySQL 5.7双主同步部分表

参考:http://www.jb51.net/article/122892.htm?pc

 

前言:

我们要配置双主同步的mysql服务器。

暂时叫做,mysql1和mysql2吧。

 

一  mysql的配置文件:my.ini

my.ini位于C:\ProgramData\MySQL\MySQL Server 5.7(ProgramData是隐藏的,需要显示隐藏文件)

1  mysql1服务器 的my.ini配置:

 

log_bin=bin_log  
server-id=1  
# 允许从复制的哪一个库 
binlog-do-db=testdb 
slave_parallel_type='logical_clock'  
#设置复制类型为 LOGICAL_CLOCK  
slave_parallel_workers=4  
#设置并行数量为 4  
###从配置  
relay-log=relay-bin  
relay-log-index=relay-bin.index  
# 允许复制主服务的库
replicate-do-db=testdb  
# 允许复制主服务的表
replicate-do-table=testdb.user  
//防止主键重复
auto_increment_offset = 1
auto_increment_increment = 2


2  mysql2服务器 的my.ini配置:

 

 

 

 

log_bin=bin_log  
server-id=2  
# 允许从复制的哪一个库
binlog-do-db=testdb  
slave_parallel_type='logical_clock'  
#设置复制类型为 LOGICAL_CLOCK  
slave_parallel_workers=4  
#设置并行数量为 4  
###从配置  
relay-log=relay-bin  
relay-log-index=relay-bin.index  
# 允许复制主服务的库
replicate-do-db=testdb  
# 允许复制主服务的表  
replicate-do-table=testdb.user 
auto_increment_offset = 2
auto_increment_increment = 2

 

 

PS:

配置完,重启mysql服务。(windows在管理--服务--重启mysql服务

其实我们发现,除了 server-id 和 auto_increment_offset 不同,其他一模一样

 

二  配置命令

1 mysql1 服务器

打开MySQL command line client

首先,输入

 

CREATE USER 'slave'@'MySql2服务器ip' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'MySql2服务器ip';

flush privileges;

 

然后输入

 

show master status;

我们会看到:(记住 File 和 Position)

 


 

 


2 mysql2 服务器

打开MySQL command line client

输入

 

CHANGE MASTER TO 
master_host = 'MySql1服务器ip',   
master_user = 'slave',  
master_password = '密码',  
master_log_file = 'bin_log.000002',  
master_log_pos = 631; 

 

 

然后

 

start slave;

 

 

最后查看

 

show slave status\G

 

如果都是Yes,就是正确的了!。

 

 

 

PS:上面是单项的配置。

 

 

双向配置,就是在Mysql1和 Mysql2互相来一遍。按照Mysql2为主,在配置一下上面的流程就可以了。

1  重置 reset slave;很有用

2  change master to 之后的配置,单引号,逗号,分号,都很重要!

3 主库服务器的数据库名为yoon,从库服务器的库名为hank
   replicate-rewrite-db = yoon -> hank

 

posted @ 2018-01-02 15:06  正怒月神  阅读(152)  评论(0编辑  收藏  举报