mysql环形主从配置

回复 收藏
今天下午一直在试验mysql环形主从,试验过多次,但是最终成功了,不容易啊,此刻非常激动!!!特将整个过程共享出来!
结构:A->B->C->A

一般主从和环形主从图.png 一般主从和环形主从图.png
2016-03-13 21:32 举报
已邀请:
0

乐橙306

赞同来自:

请问  你这边 是怎么实现  mysql 的高可用?
0

lin19890913

赞同来自:

本帖最后由 lin19890913 于 2016-3-13 22:25 编辑

环境:由于我的笔记本无法同时带动3台虚拟机,所以我就用一台机子上的3个数据库实体作为试验                             
                mysql1  端口:3306
                mysql2  端口:3307
                mysql3  端口:3308
一.保持三个数据库的初始数据同步
     (1)将mysql1的mysql库备份出来:mysqldump -uroot -S /tmp/mysql1.sock mysql>123.sql
       (2) 在三个mysql上都创建空数据库db1
      (3) 将123.sql里的数据恢复到三个mysql各自的db1库中
            mysql -uroot -S /tmp/msyql1.sock db1<123.sql
            mysql -uroot -S /tmp/msyql2.sock db1<123.sql
            mysql -uroot -S /tmp/msyql3.sock db1<123.sql
二.修改各自的配置文件my.cnf
              server-id = 1   //3个mysql各不相同,可以依次设置为1,2,3
              log-bin = mysql-bin    //3个mysql可以自定义
              replicate-do-db = db1     //3个mysql都一样
              auto-increment-increment = 3  //每次增长3,3个mysql都一样
              auto-increment-offset = 1 //设置自动增长的字段的偏移量,即初始值为1,msyql2设为2,mysql3设为3
              log-slave-updates = true    //是否继续传递下去为“是”,非常重要,三个mysql都必须加上!


注:二都只有server-id不同和 auto-increment- offset不同auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到三个实例,所以值设为3。


都配置完后,各自重启mysql服务



0

lin19890913

赞同来自:

本帖最后由 lin19890913 于 2016-3-13 22:11 编辑

三.创建用户并授权
      >grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123123';
      >flush privileges;
ps:为了方便,防止搞混,三个mysql的授权用户名和密码都一样
0

杭州小白

赞同来自:

厉害
0

lin19890913

赞同来自:

本帖最后由 lin19890913 于 2016-3-13 22:22 编辑

四.依次进行主从配置,具体为A主B从,B主C从,C主A从,连起来形成环状,A->B->C->A           
      1.进入mysql1
         flush tables with read lock;
         show master status;   //记下前面两列内容
        进入mysql2
         slave stop;
         change master to master_host='127.0.0.1', master_port=3306, master_user='repl', master_password='123123', master_log_file='mysql-bin.000006', master_log_pos=474952;
         slave start;
       mysql1解锁表:unlock tables;
       mysql2查看slave 状态:show slave status\G;    //查看有无两个YES
      
      2.mysql2和mysql3之间,mysql3和mysql1之间重复上面的操作,配置好相互之间的主从关系(注意chang master时,注意三个加黑加粗的部分)


0

lin19890913

赞同来自:

本帖最后由 lin19890913 于 2016-3-13 22:17 编辑

五.测试            
     在三个mysql中任意一个上进行增删表操作,查看另外两个有无同步变化,如果严格按照上面的步骤和配置进行,应该不会出错
     至此,mysql环形主从配置成功!



0

lin19890913

赞同来自:

乐橙306 发表于 2016-3-13 21:36
请问  你这边 是怎么实现  mysql 的高可用?

不要插楼好吗?我这是多主(mysql环形主从)不是高可用
0

IT-xiaoshuai

赞同来自:

膜拜一下。
0

wsw13640218682

赞同来自:

本帖最后由 wsw13640218682 于 2016-3-13 22:43 编辑

(分开三台虚拟机)前几天我想弄个2主一从(使用过 log-slave-updates = true这参数),但出了点问题(主从数据不能同步),后来将主从重组后,一主二从的结构成了,但想再弄多个主进去变成2主2从,请问可不可以固定两个主的吗,它的设置也和你这个一样?
0

wsw13640218682

赞同来自:

lin19890913 发表于 2016-3-13 22:09
五.测试            
     在三个mysql中任意一个上进行增删表操作,查看另外两个有无同步变化,如果严格 ...

这个环形主从会不会造成mysql读写分离的混乱?
0

肥猪在天

赞同来自:

向同学学习,厉害!
0

乐橙306

赞同来自:

本帖最后由 乐橙306 于 2016-3-14 09:08 编辑
lin19890913 发表于 2016-3-13 22:24
不要插楼好吗?我这是多主(mysql环形主从)不是高可用

1.插楼 是我的不对
2.mysql环形主从  它的作用是?  适用对数据库  增,删,改 操作频繁的平台?
3.如果你让提一个mysql 高可用的方案  你打算怎么做?
0

lin19890913

赞同来自:

wsw13640218682 发表于 2016-3-13 22:39
(分开三台虚拟机)前几天我想弄个2主一从(使用过 log-slave-updates = true这参数),但出了点问题(主从 ...

兄弟你原理搞清楚没?一个从只能有一个主!2主一从不合逻辑!
0

lin19890913

赞同来自:

wsw13640218682 发表于 2016-3-13 22:41
这个环形主从会不会造成mysql读写分离的混乱?

还没想那么多,只是想试验一下环形主从
0

lin19890913

赞同来自:

乐橙306 发表于 2016-3-14 08:56
1.插楼 是我的不对
2.mysql环形主从  它的作用是?  适用对数据库  增,删,改 操作频繁的平台?
3.如 ...

具体这个环形主从会应用到什么平台,我不清楚,我只是想试验下环形主从怎么个配置法,其他的没多想,你可以试验下
0

乐橙306

赞同来自:

lin19890913 发表于 2016-3-14 09:23
具体这个环形主从会应用到什么平台,我不清楚,我只是想试验下环形主从怎么个配置法,其他的没多想,你可 ...

技术是用来解决当前问题的    不要为了用技术而用技术

第三点呢?   有没有简单+  易实施+  已实施 的架构  ,我知道的一个方案是 MHA   ,实施起来 比较麻烦 。
0

lin19890913

赞同来自:

乐橙306 发表于 2016-3-14 09:45
技术是用来解决当前问题的    不要为了用技术而用技术

第三点呢?   有没有简单+  易实施+  已实施  ...

我无语,我都说了我只是试验下环形主从怎么搭,其他的我没去想,你可以自己扩展研究下
0

maria

赞同来自:

wsw13640218682 发表于 2016-3-13 22:39
(分开三台虚拟机)前几天我想弄个2主一从(使用过 log-slave-updates = true这参数),但出了点问题(主从 ...

{:6_137:}
两主一从不应该是简单的主从关系,如果简单的主从关系,两主之间的数据肯定会不同步。
所以我觉得应该先做两主直接的互为主从的配置,然后再以其中一个为主,再加一个从
0

maria

赞同来自:

乐橙306 发表于 2016-3-14 08:56
1.插楼 是我的不对
2.mysql环形主从  它的作用是?  适用对数据库  增,删,改 操作频繁的平台?
3.如 ...

我觉得环形结构是从主主结构上拓展出来的,可以用作高可用
0

乐橙306

赞同来自:

maria 发表于 2016-3-14 11:06
我觉得环形结构是从主主结构上拓展出来的,可以用作高可用

你们公司mysql  高可用是怎么做的?
0

starry

赞同来自:

maria 发表于 2016-3-14 11:06
我觉得环形结构是从主主结构上拓展出来的,可以用作高可用

它实现不了高可用 这能提供负载均衡 说了是环形 所以具有环形的缺点 一个节点瘫痪 这个集群就瘫痪了“数据无法传递”
0

wsw13640218682

赞同来自:

lin19890913 发表于 2016-3-14 09:21
兄弟你原理搞清楚没?一个从只能有一个主!2主一从不合逻辑!

我其实就是想要主主同步,还有是主从同步的功能
0

lin19890913

赞同来自:

0

lin19890913

赞同来自:

wsw13640218682 发表于 2016-3-14 12:40
我其实就是想要主主同步,还有是主从同步的功能

几个mysql?如果是3个,A,B,C    那么AB互为主从,C单独作为A或B的从
如果是4个,A,B,C,D   那么AB互为主从,C单独作为A的从,D单独作为B的从
这种方法能实现你的目的
0

wsw13640218682

赞同来自:

lin19890913 发表于 2016-3-14 13:53
几个mysql?如果是3个,A,B,C    那么AB互为主从,C单独作为A或B的从
如果是4个,A,B,C,D   那么AB互为主 ...

B已经做了A的从,D也可以做B的从?因为我将主从重组后,A已作为BC的主,所以我要做的是准备新增的那一台D只要将change master to master host='B的ip' .......;即可?
0

lin19890913

赞同来自:

wsw13640218682 发表于 2016-3-14 14:56
B已经做了A的从,D也可以做B的从?因为我将主从重组后,A已作为BC的主,所以我要做的是准备新增的那一台D ...

        C<----A<----->B---->D
C是A的从,D是B的从,AB互为主从。  A是主,BC是A的从;B是主,AD是B的从
按照你的意思,拓扑图应该是这样的
0

lyhabc

赞同来自:

环形主从是多主?      
0

wsw13640218682

赞同来自:

lin19890913 发表于 2016-3-14 17:51
CD
C是A的从,D是B的从,AB互为主从。  A是主,BC是A的从;B是主,AD是B的从
按照你的意思,拓 ...

是的..差不多这样,其实早上时候我是打错了{:4_99:},我是要AB互为主主,同时A和D都是BC的主,这样可以不?我最终目的就是加插一个D来也做主
0

lin19890913

赞同来自:

不行!那样BC就有两个主了!你要记住,每个从只能有一个主!
0

lin19890913

赞同来自:

wsw13640218682 发表于 2016-3-14 21:16
是的..差不多这样,其实早上时候我是打错了,我是要AB互为主主,同时A和D都是BC的主,这样可以不 ...

不行,每个从只能有一个主
0

wsw13640218682

赞同来自:

lin19890913 发表于 2016-3-15 09:12
不行,每个从只能有一个主

我还是打错了,我是要AD互为主主,不是AB..(昨天未睡醒的状态{:4_102:})
0

lin19890913

赞同来自:

wsw13640218682 发表于 2016-3-15 09:21
我还是打错了,我是要AD互为主主,不是AB..(昨天未睡醒的状态)

我被你搞糊涂了,我不知道你到底想干嘛
0

shoswj001

赞同来自:

mark

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: