docker hub mysql主从_1.Mysql集群------Docker下的Mysql主从复制

前言:

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

我的计划是:

1.实现Docker下的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以后的版本才支持主从复制

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

拉取完之后查询镜像

命令:docker images

605bc5fbf7ee523bca4a84a84110a8f8.png

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)开启主从数据库

开启主数据库:

348b29d5da0fe7d974941eba333e2356.png

开启从数据库:

35d096886fcb5fbecda38e9929a7e683.png

查看容器状态:

7a4dcad7ce40cfd7af20eb8f3deb8c9d.png

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

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

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

96d803c914f08c13f91dfce62228a2fb.png

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

6dc52e70d25ca7a2182e722937729f7c.png

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

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

命令:apt-get update

6218c7486d06526a9668daffb3120576.png

命令:apt-get install vim

4beb829bf7f3d49c13e89e4018fff214.png

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

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

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

ad03be7d149ada0425b48a8d7cb1b681.png

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

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

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

master数据库创建授权用户:

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

flush privileges;

70a6a4b1762388fbebe031b5b0d362ee.png

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

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

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

1c73e8c5302f1eb477d358020c1abb74.png

查看master状态:show master status;

4c6f8296ffb6655f43e18c3184e4019f.png

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

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

停止slave:stop slave;

配置连接master数据库:

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

f327a2c236eac3e5b24d365198d0deb3.png

开启slave:start slave;

查询slave状态:show slave status;

f63fd9a6303af287fd21dfe64c6c8154.png

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

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

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

来查看下,docker容器的ip:

3b4a049ee7f02a578ab37f0b5a12dd64.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值