前言:

实话说,我想做的是Mysql集群架构。

我的计划是:

1.实现Docker下的Mysql主从复制

2.实现MyCat基于Mysql的读写分离

3.实现MyCat的分库分表

4.实现pxc集群

5.综合MyCat和pxc实现高可用、高并发的数据库集群架构

当然,现在的我还是一个小菜鸟,尤其是第一次上手docker上配置Mysql的主从复制,

自己一路跳坑,终于走出了黑暗。

这里,我就带领大家进入我的坑计划。

开始搬砖:

1.安装docker

(1)登录linux

(2)下载docker

命令:yum install docker

就这么简单

2.安装mysql镜像

(1)开启docker

命令:service docker start

(2)拉取Mysql,注意Mysql5以后的版本才支持主从复制

我这里是去网易蜂巢取得镜像:https://c.163yun.com/hub#/m/home/

命令:docker pull hub.c.163.com/library/mysql:latest

拉取完之后查询镜像

命令:docker images

3.配置主从复制

(1)创建配置文件

目录:/usr/local/mysql/   注意:目录你个人设定,这不过是我自己的爱好

主数据库(master)配置文件/usr/local/mysql/master/my.cnf:

[mysqld]

log-bin=mysql-bin

server-id=1     #注意这个id>0且要唯一

从数据库(slave)配置文件/usr/local/mysql/slave/my.cnf:

[mysqld]

log-bin=mysql-bin

server-id=2     #注意这个id>0且要唯一

注意:我是在容器外部进行的配置,喜欢进入容器内部配置的请稍等。

(2)开启主从数据库

开启主数据库:

开启从数据库:

查看容器状态:

在这里,容器就正常打开了。

喜欢进入容器内部修改配置文件的注意了:

进入主数据库命令:docker exec -it mysql /bin/bash

修改my.cnf配置文件命令:vi /etc/mysql/my.cnf

oh my 上帝!里面的vi、vim命令都不能用!!!

上天难不倒有心之人,我装一个vim(实话说,vi是怎么装怎么失败,vim偶尔成功,但老子用的是集群啊,对,每一个容器都得装一遍vim,so,我启用外部的配置文件)

命令:apt-get update

命令:apt-get install vim

(这一次神奇的装成功了)

照着上边修改配置文件修改下my.cnf就可以了。

命令:vim /etc/mysql/my.cnf

配置成功的同学,保存,重启容器,照此再配置从服务器。

(3)重中之重的主从配置环节

---------------------------------------------------------------------------------------------------------------------------------master数据库配置-----------------------------------------------------------------------------------------------------------------------

master数据库创建授权用户:

grant all privileges on *.* to 'username'@'ip' identified by 'password' with grant option;

flush privileges;

%是统配字符,表示所有ip都可以连接,这个ip主要是从数据库的ip

喜欢进入容器内部进行黑窗操作的同学请不要介意,我是喜欢这样用客户端哈哈。

查询用户,host:select user,host from mysql.user;

查看master状态:show master status;

主数据库的配置环节到此就完成了。

---------------------------------------------------------------------------------------------------------------------------------slave数据库配置-----------------------------------------------------------------------------------------------------------------------

停止slave:stop slave;

配置连接master数据库:

change master to master_host=’ip’, master_user=’username’, master_password=’password’, master_log_file=’log_file_name’;

开启slave:start slave;

查询slave状态:show slave status;

当你的Slave_IO_State也是这样就完成了。

但是可惜的是,如果你不知道这个细节,你永远是完不成的。

注意:上面填写的ip,一定一定是docker容器的ip,而不是虚拟机的ip。

来查看下,docker容器的ip:

1.Mysql集群------Docker下的Mysql主从复制的更多相关文章

  1. MySQL集群(一)之主从复制

    前面学完了JDBC,接下来带大家感受一下MySQL集群!其实什么是MySQL集群?简单的说就是一群机器(服务器)的集合,它们连在一起来工作. 其实各种数据库都有自己的集群,常常的多: 我们要学习的就是 ...

  2. MySQL集群---②Windows平台搭建MySQL CLUSTER集群

    原文:http://blog.csdn.net/mazhaojuan/article/details/42211857 本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. My ...

  3. 【MySQL集群】——Java程序连接MySQL集群

    上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中. 外部程序想要远程连接到mysql集群,还须要做的一个操作就是设 ...

  4. Docker环境下的前后端分离项目部署与运维(六)搭建MySQL集群

    单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...

  5. Docker部署Mysql集群

    单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...

  6. 高可用性、负载均衡的mysql集群解决方案

    高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...

  7. [原]项目进阶 之 集群环境搭建(二)MySQL集群

    上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容. 1.MySQL集群简介 MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单 ...

  8. MySQL集群(三)mysql-proxy搭建负载均衡与读写分离

    前言 前面学习了主从复制和主主复制,接下来给大家分享一下怎么去使用mysql-proxy这个插件去配置MySQL集群中的负载均衡以及读写分离. 注意:这里比较坑的就是mysql-proxy一直没有更新 ...

  9. mysql集群7.4.1

    一:mysql集群原理: 1 mysql集群分为三个节点: 1.1 控制节点:本身不提供服务只是控制整个集群的开启与关闭 1.2 数据节点:真正提供数据库的存储,并和其他数据节点关联用 1.3 sql ...

随机推荐

  1. Android NDK开发 Jni中打日志LOG(二)

    HelloJni.c文件中,加入头文件和函数声明.最终文件如下: #include <jni.h> #include <string.h> #include<androi ...

  2. RTT设备驱动之看门狗

    看门狗的喂狗一般放在空闲任务钩子函数里面. rt_thread_idle_sethook(idle_hook); static void idle_hook(void) { /* 在空闲线程的回调函数 ...

  3. 11073 最热门的K个搜索串

    11073 最热门的K个搜索串时间限制:350MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC;VCDescription大家都非常喜欢而习惯用baidu ...

  4. 对象池1(方法功能)PoolOption

    2.对象池PoolOption(方法功能) //单类型缓冲对象管理(单模池操作管理)功能: 激活.收回.预加载等. namespace kernal { [System.Serializable] p ...

  5. Linux下wget下载软件小技巧以及安装jdk、tomcat与ftp服务器

    一.ftp的安装 装个ftp搞了一下午,感觉以前没那么麻烦的呀,结果到晚上才发现是实验室网的问题,换连手机的热点马上可以了,真是尴尬,把基本安装步骤记录一下: 1.检查安装vsftpd软件 使用如下命 ...

  6. Kudu 常见的几个应用场景

    不多说,直接上干货! Kudu 常见的几个应用场景 实时更新的应用.刚刚到达的数据就马上要被终端用户使用访问到. 时间序列相关的应用,需要同时支持: 根据海量历史数据查询. 必须非常快地返回关于单个实 ...

  7. 服务间调用--feign跟ribbon

    微服务一般来说当然是多服务多实例的,那么这些服务之间如何相互调用呢?spring cloud之前我们用dubbo,把服务开放出来,在xml配好后就可以像调用本地service一样调用其它模块的服务了: ...

  8. 基于HTTP协议之WEB消息实时推送技术原理及实现

    很早就想写一些关于网页消息实时推送技术方面的文章,但是由于最近实在忙,没有时间去写文章.本文主要讲解基于 HTTP1.1 协议的 WEB 推送的技术原理及实现.本人曾经在工作的时候也有做过一些用到网页 ...

  9. springboot整合mybatis+oracle

    第一步 认识springboot :springboot是为了解决配置文件多,各个组件不统一的问题,它省去了很多配置文件,同时实现了spring产品的整合. 创建springboot项目:通过选择sp ...

  10. 自定义滑块Vue组件

    <div class="audio"> <audio id="audio" ref="audio" src="h ...