参考:http://www.jb51.net/article/122892.htm?pc
前言:
我们要配置双主同步的mysql服务器。
暂时叫做,mysql1和mysql2吧。
一 mysql的配置文件:my.ini
my.ini位于C:ProgramDataMySQLMySQL 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 statusG
如果都是Yes,就是正确的了!。
PS:上面是单项的配置。
双向配置,就是在Mysql1和 Mysql2互相来一遍。按照Mysql2为主,在配置一下上面的流程就可以了。
1 重置 reset slave;很有用
2 change master to 之后的配置,单引号,逗号,分号,都很重要!
3 主库服务器的数据库名为yoon,从库服务器的库名为hank
replicate-rewrite-db = yoon -> hank