1.Mysql集群------Docker下的Mysql主从复制
前言:
实话说,我想做的是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主从复制的更多相关文章
- MySQL集群(一)之主从复制
前面学完了JDBC,接下来带大家感受一下MySQL集群!其实什么是MySQL集群?简单的说就是一群机器(服务器)的集合,它们连在一起来工作. 其实各种数据库都有自己的集群,常常的多: 我们要学习的就是 ...
- MySQL集群---②Windows平台搭建MySQL CLUSTER集群
原文:http://blog.csdn.net/mazhaojuan/article/details/42211857 本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. My ...
- 【MySQL集群】——Java程序连接MySQL集群
上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中. 外部程序想要远程连接到mysql集群,还须要做的一个操作就是设 ...
- Docker环境下的前后端分离项目部署与运维(六)搭建MySQL集群
单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...
- Docker部署Mysql集群
单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...
- 高可用性、负载均衡的mysql集群解决方案
高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...
- [原]项目进阶 之 集群环境搭建(二)MySQL集群
上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容. 1.MySQL集群简介 MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单 ...
- MySQL集群(三)mysql-proxy搭建负载均衡与读写分离
前言 前面学习了主从复制和主主复制,接下来给大家分享一下怎么去使用mysql-proxy这个插件去配置MySQL集群中的负载均衡以及读写分离. 注意:这里比较坑的就是mysql-proxy一直没有更新 ...
- mysql集群7.4.1
一:mysql集群原理: 1 mysql集群分为三个节点: 1.1 控制节点:本身不提供服务只是控制整个集群的开启与关闭 1.2 数据节点:真正提供数据库的存储,并和其他数据节点关联用 1.3 sql ...
随机推荐
- Android NDK开发 图片处理(五)
做过Java的同学可能经常会遇到一些关于图片处理的 例如类似QQ离线头像显示灰的.最快的算法是用colorMatrix来实现.这里通过Java调用JNI来处理每一个像素来实现. 对每一个像素点取出RG ...
- 3n+1猜想
1001. 害死人不偿命的(3n+1)猜想 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Ca ...
- js循环里进行回调,引用循环里的变量,发现只是最后值的问题
做项目的时候,栽在一个小地方,是这样的 我有很多个坐标点,我想把这些坐标点都绑定一个事件,当点击了这个坐标点之后,发送一个ajax 请求,将坐标点的id 发出去,等待显示返回的数据 但是实际当中,无论 ...
- 批量处理标签属性中document.getElementsByName()的替代方案
背景 今天在逛知乎时候,看到一个JavaScript方面的问题: 最近在学习JavaScript DOM,就好奇地查阅资料,以及请教学长,得到下面解答: http://www.w3help.org/z ...
- 【Linux】debian 7 安装 rz sz lrzsz
通常linux服务器是通过ssh客户端来进行远程登录和管理的.然而如何方便的实现客户端与linux服务器端的文件交互呢?这就需要用到rz(上传).sz(下载)工具.在Ubuntu 10.10下安装rz ...
- Web.Config详细说明
(一).Web.Config是以XML文件规范存储,配置文件分为以下格式 1.配置节处理程序声明 特点:位于配置文件的顶部,包含在<configSections>标志中. 2.特定应 ...
- 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作
$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...
- npm EPERM: operation not permitted, rename解决
此问题并非权限问题! 执行如下3条命令解决: 1.清理npm缓存 npm cache clean --force 2.升级npm版本 npm install -g npm@latest --force ...
- 5.1 Linux(8)
2019-5-1 21:37:20 嗓子前天回来上火,现在不疼了就是有点痒痒! 多喝热水 今天老师讲的如何发布项目,其实就是配置一下自己的uwsgi和 Nginx 配置一下 其他的不难 笔记很详细 ...
- Vue编译时写在style中的路径问题
写在vue文件里面的style样式,在添加例如背景图片的时候,如果用的是相对路径,那么build出来的css文件的路径将会出错,导致找不到图片. 通过查找资料,在https://segmentfaul ...