docker搭建haproxy、pxc集群,监控页面打不开

搞完了发现一直打不开监控页面,反复卸载重装了很多次,最后发现是安全组没开。
我特么的!!!

pxc集群

下载镜像
docker pull percona/percona-xtradb-cluster:5.7.21
重命名
docker tag percona/percona-xtradb-cluster:5.7.21 pxc

创建挂卷
docker volume create --name v1
创建pxc容器

节点1

docker run -d -p 33006:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql --name=node1 --network=swarm_mysql pxc

节点2

docker run -d -p 33007:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql --name=node2 --net=swarm_mysql pxc

节点3

docker run -d -p 33008:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --name=node3 --net=swarm_mysql pxc
遇到问题

在这里插入图片描述

简单粗暴处理
-bash-4.2# netstat -tanlp
kill -9 1240
又遇到问题

在这里插入图片描述

又简单粗暴处理
docker ps -a
docker rm node1

haproxy

数据库中新增用户
#指定数据库
use mysql;
#创建用户
create user 'haproxy'@'%' identified by '';
创建一个haproxy.cfg文件
mkdir  /haoke/haproxy/haproxy.cfg

如果报错

不是一个文件。。。之类的

就加个 -p

mkdir -p /haoke/haproxy/haproxy.cfg
haproxy文件里面写内容
global
    #日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
    log 127.0.0.1 local5 info
    #守护进程运行
    daemon

defaults
    log    global
    mode    http
    #日志格式
    option    httplog
    #日志中不记录负载均衡的心跳检测记录
    option    dontlognull
    #连接超时(毫秒)
    timeout connect 5000
    #客户端超时(毫秒)
    timeout client  50000
    #服务器超时(毫秒)
    timeout server  50000

#监控界面    
listen  admin_stats
    #监控界面的访问的IP和端口
    bind  0.0.0.0:8888
    #访问协议
    mode        http
    #URI相对地址
    stats uri   /dbs
    #统计报告格式
    stats realm     Global\ statistics
    #登陆帐户信息
    stats auth  admin:abc123456
#数据库负载均衡
listen  proxy-mysql
    #访问的IP和端口
    bind  0.0.0.0:3307
    #网络协议
    mode  tcp
    #负载均衡算法(轮询算法)
    #轮询算法:roundrobin
    #权重算法:static-rr
    #最少连接算法:leastconn
    #请求源IP算法:source 
    balance  roundrobin
    #日志格式
    option  tcplog
    #在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
    option  mysql-check user haproxy
    server  node1 47.101.163.8:33006 check weight 1 maxconn 2000 
    server  node2 47.101.163.8:33007 check weight 1 maxconn 2000 
    server  node3 47.101.163.8:33008 check weight 1 maxconn 2000 
    #使用keepalive检测死链
    option  tcpka

拉取镜像
docker pull haproxy
创建容器

查看历史命令

history

创建容器命令

docker run -it -d -p 8888:8888 -p 4002:3306 -v /haoke/haproxy:/usr/local/etc/haproxy --name haproxy --net=swarm_mysql --privileged haproxy
监控页面展示

http://47.101.163.8:8888/dbs
在这里插入图片描述
记住这边现在是异常的,粉色代表异常,卧槽 好像不是粉色,我色盲?

连数据库

idea中连不上数据库

Connection to 47.101.163.8 failed.
[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.

在这里插入图片描述

但是xshell中是可以的

在这里插入图片描述

安全组里面端口是开了的
在这里插入图片描述

打算重新删除重建

重建之后现在好了:
在这里插入图片描述

然后页面上也正常了
在这里插入图片描述

任何原因重启Mysql节点

node2、node3

这两个节点随便造,删除后,按照命令重新建立即可。

node1

这个节点删除后,重新用文章开头命令重建不行。数据不会同步过去,且HaProxy会报错

Layer7 wrong status: #28000Access denied for user ‘haproxy’@‘47.101.163.8’ (using password: NO)

在这里插入图片描述

执行这个命令

docker run -d -p 33006:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node2 -v v1:/var/lib/mysql --name=node1 --net=swarm_mysql pxc

成功,数据是同步过去了的。
在这里插入图片描述


2023年1月6日19:35:13
还有其他方法:
1、删除v1卷下的grastate.dat文件
2、删除pxc1容器。
3、新建pxc1容器。
4、依次建立其他容器即可。

问题来源见这里:

https://blog.csdn.net/weixin_43555115/article/details/128581268

或者点我跳转


2023年2月21日13:52:06

navicat 连接haproxy连接不上

分析了一大推,其实要看下
1、docker run 的那个haproxy脚本的端口是什么,如本帖中写的是haproxy配置文件中是3307,但是脚本中是4002:3306,所以导致navicat一直连接不上。

经修改后,脚本改成了33005,配置文件也改成了33005,最终连接成功。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值