Docker的前后端分离人人网项目Demo1

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

下后端代码
在这里插入图片描述
引入本地Windows测试运行在这里插入图片描述
执行后段关于数据库建表sql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开一范围段的防火墙端口,而只关闭其中一个,会报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

之前蜗牛老梁讲的mysql mycat主从复制就是replication方案
在这里插入图片描述
在这里插入图片描述
PXC任何节点都可以读写,不分主从
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
replication的弱一致性演示
2个库
在这里插入图片描述
在这里插入图片描述

停止从库

在这里插入图片描述
在这里插入图片描述
已停止
在这里插入图片描述
在这里插入图片描述
第一个库写入 成功,第二个库没有这个数据,证明了弱一致性
在这里插入图片描述

PXC强一致性演示
3个库
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关掉PXC其中一个db端口,进入到集群中一个节点容器里面通过它的防火墙,关闭它pxc同步的端口,需要封闭入站和出站两个端口。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
docker搭建mysql的pxc集群
在这里插入图片描述
pxc集群很特殊,只能安装在linux之上

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

docker pull docker.io/percona/percona-xtradb-cluster

在这里插入图片描述

重命名镜像,实际上是复制了一份
在这里插入图片描述
删除旧名字镜像
在这里插入图片描述
现在要创建5个节点pxc集群就要创建5个pxc容器

创建出来的pxc容器不要直接对接docker以外的网络,不安全
要在docker内部给pxc划分一个网段,这个网段外部无法直接访问,向外部开放什么端口,用docker端口映射技术实现
在这里插入图片描述
说明,创建内部网段指令是docker network create 网段名

那么这个网段ip是多少?docker虚拟机自带网段是172.17.0.xxx,这是内置的网段

创建第一个网段net1,网段默认ip就应该是172.18.0.xxx
在创建第二个net2,网段默认ip就应该是172.19.0.xxx
当然可以自己指定ip

docker network create --subnet=172.18.0.0/24 net1
在这里插入图片描述
查看刚刚创建的net1
注意看Subnet
在这里插入图片描述
创建出的docker容器要把数据保存到宿主机里面,所以就用容器卷,映射宿主机目录,

pxc集群在docker容器里面运行,无法直接使用映射目录,映射目录直接给到在pxc启动的容器,会闪退
就要用容器卷
在这里插入图片描述
创建一个数据卷
然后再宿主机中查看
在这里插入图片描述
可以删除
在这里插入图片描述
在这里插入图片描述
-d表示后台运行(要进入容器是-it),-p 宿主机端口:容器端口

-v标示数据卷, v1 :容器里面的映射目录

-e 是参数,注意 XTRABACKUP_PASSWORD=abc123456

–privileged 是赋予最高权限

–net 是用那个网段

最后pxc就是从哪个容器克隆

CLUSTER_NAME名字就是PXC

docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=pxc_node1 --net=net1 --ip 172.18.0.2 pxc
在这里插入图片描述
加入第一个node1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
docker run -d -p 3307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node2 --net=net1 --ip 172.18.0.3 pxc

docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node3 --net=net1 --ip 172.18.0.4 pxc

docker run -d -p 3309:3306 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node4 --net=net1 --ip 172.18.0.5 pxc

docker run -d -p 3310:3306 -v v5:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pxc_node1 --privileged --name=pxc_node5 --net=net1 --ip 172.18.0.6 pxc

在这里插入图片描述
注意!!!启动第一个后要耐心等个2分钟以上,不然后面的集群节点可能接不上,会闪退(通过navicat连接测试)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就可以创建第二个容器节点了
在这里插入图片描述
第二个容器节点初始化就很快了,然后再用navicat测试连接,只有第一个最慢

注意重启vm、重启docker服务,再次重启pxc容器会闪退,出现抱错
在这里插入图片描述
就要去宿主机中搜索文件grastate.dat

find / -name grastate.dat
在这里插入图片描述
需要修改grastate.dat文件将safe_to_bootstrap的值置为1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

要在后面页面看到正常提供服务的数据库

注意先关防火墙

注意先关防火墙

注意先关防火墙

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
0.0.0.0:3306 表示任何IP都可以访问这个3306端口
在这里插入图片描述

注意下面3306都是容器的端口而不是宿主机的端口
在这里插入图片描述
在这里插入图片描述

docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name haproxy1 --privileged --net=net1 --ip 172.18.0.7 haproxy
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置一个haproxy对于所负责负载均衡的数据库实例心跳检查的登陆账号

create user ‘haproxy’@’%’ IDENTIFIED BY ‘’
%表示任何ip都能以该账号登陆到mysql数据库,密码为空

在这里插入图片描述

宿主机ip:4001/dbs
在这里插入图片描述
成功进入控制监视界面
在这里插入图片描述
down掉其中一个db节点
在这里插入图片描述
监视器中就显红了
在这里插入图片描述
用navicate连接这个haproxy,以后就只通过这个负载均衡器往数据库里面读写了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在haproxy容器中安装keepalived

容器中的linux系统是ubantu所以安装软件指令不一样
在这里插入图片描述

在这里插入图片描述

apt-get update加速
重要 - 设置ubuntu apt-get 源(ubuntu官方跟阿里云的)
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
apt-get clean
然后

apt-get update
apt-get upgrade

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

apt-get install vim

vim /etc/keepalived/keepalived.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
!在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
后面没了????
引用完整参考如下
https://blog.csdn.net/qq_21108311/article/details/82973763
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
xtrabackup不需要锁表就备份数据了,LVM要锁表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
往往第一次是全量备份,第二次是增量
在这里插入图片描述
在这里插入图片描述
在容器中备份的数据一定要通过docker数据卷持久化到宿主机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在student表中新增一个记录d,等会看还原后是否只有三条记录
在这里插入图片描述
还原指令
在这里插入图片描述
启动一个node1然后冷还原

在这里插入图片描述

在这里插入图片描述
执行冷还原
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值