mysql主主复制,只因为mycat集群需要

时间:2022-09-15 08:30:50

本来想着搭建一下mysql的主从复制,可以把mycat的mysql集群搞起来,发现,mysql主从搭建的mycat mysql集群不太合理,所以,还是用先搭建下mysq的主主复制吧。顺便记下笔记,将来方便查阅。

在前篇文章http://blog.csdn.net/yingxiake/article/details/51691986,mysql的主从复制搭建上,搭建下mysql的主主复制,也是很简单。

1、分别修改配置文件,添加如下内容

#master1上
[mysqld]
server-id=101
log-bin = mysql-bin
auto-increment-increment = 2
auto-increment-offset = 1000

#master2上
[mysqld]
server-id=103
log-bin = mysql-bin
auto-increment-increment = 2
auto-increment-offset = 1001

由于二都只有server-id不同和 auto-increment- offset不同auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突,配置好重启MySQL读取新的配置文件,另外auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2

2、分别为俩台master创建各种的用户供对方使用

#master1的机器上
mysql> CREATE USER 'master1'@'%' IDENTIFIED BY '123456';

#master2的机器上
mysql> CREATE USER 'master2'@'%' IDENTIFIED BY '123456';

2、分别给用户授予复制权限

#master1的机器上
mysql> GRANT REPLICATION SLAVE ON *.* TO 'master1'@'%' IDENTIFIED BY '123456';

#master2的机器上
mysql> GRANT REPLICATION SLAVE ON *.* TO 'master2'@'%' IDENTIFIED BY '123456';

3、分别重启服务,通过show master status 查看二进制文件名称还有pos位置,为slave配置复制位置

4、分别切换master,注意master_log_file还有master_log_pos

#master1的机器上
mysql> change master to master_host='192.168.137.103',master_user='master2',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=951;

#master2的机器上
mysql> change master to master_host='192.168.137.101',master_user='master1',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=698;

5、分别利用命令启动slave

mysql> start slave ;

6、测试结果,在master1上创建数据库,master2是否能同步,然后再在master2上创建表写数据,看master1能否同步。

到此配置完成…