mysql主主复制,只因为mycat集群需要
Posted node2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主主复制,只因为mycat集群需要相关的知识,希望对你有一定的参考价值。
本来想着搭建一下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能否同步。
到此配置完成…
以上是关于mysql主主复制,只因为mycat集群需要的主要内容,如果未能解决你的问题,请参考以下文章