快速部署pxc集群

点击查看代码
同步

systemctl stop firewalld && systemctl disable  firewalld
systemctl stop NetworkManager && systemctl disable  NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config



swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab


yum install chrony -y
systemctl enable chronyd --now
chronyc sources

ip修改(这里改成核弹发送密码)
10.1.161.28
10.1.161.26(原本是25,被人占了ip)
10.1.161.6
主机名设置

sudo hostnamectl set-hostname node01
sudo hostnamectl set-hostname node02
sudo hostnamectl set-hostname node03
全部
bash

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
 yum --enablerepo=elrepo-kernel install -y kernel-lt
 grep initrd16 /boot/grub2/grub.cfg
 grub2-set-default 0
 reboot
uname -a

镜像拉我们的私有库:我们的仓库地址():
https://10.1.161.110:5000/
私有库使用步骤:
-----------------------------可省略:这个弄起来太麻烦,一般情况下,都会用k8s整一个插件,用k8s喊我就行,一般情况就下个镜像包load一下就好,大多数镜像都是可以直接拉下来的。

或者有时间也可以去b站自己学k8s...,找时间最新的。docker和k8s不走外部代理,所以代理是没有用的。解决方法就是用k8s的那个插件
--------------



docker pull percona/percona-xtradb-cluster:5.7.27
docker pull swarm


docker tag percona/percona-xtradb-cluster:5.7.27 10.1.161.110:5000/percona/percona-xtradb-cluster:5.7.27
docker tag swarm:latest 10.1.161.110:5000/percona/swarm:latest

docker push 10.1.161.110:5000/percona/percona-xtradb-cluster:5.7.27
docker push 10.1.161.110:5000/percona/swarm:latest
---------------------------------------可省略--------------


curl -fsSL https://get.docker.com | bash

yum -y install docker-ce
sudo systemctl start docker
sudo systemctl enable docker


docker pull  percona/percona-xtradb-cluster:5.7.21
#pxc无法映射目录,只能创建数据卷,分别创建mysql数据卷和配置卷
docker volume create mysql-data
docker volume create mysql-conf
docker run -d -v mysql-data:/var/lib/mysql --restart always -e TZ=Asia/Shanghai \
-e CLUSTER_NAME=PXC -v mysql-conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -e EXTRABACKUP_PASSWROD=123456 \
--privileged --name=mysql-node1 --net=host percona/percona-xtradb-cluster:5.7.21

navicat看下能不能连,能连说明node1安装成功
(附加:
sql_model的模式如果要更改的话:
查一下:docker inspect mysql-conf
修改my.cnf
然后docker restart mysql-node1
)
跟第一个差不多:
#pxc无法映射目录,只能创建数据卷,分别创建mysql数据卷和配置卷
docker volume create mysql-data
 
docker volume create mysql-conf

docker run -idt -v mysql-data:/var/lib/mysql --restart always -e TZ=Asia/Shanghai \
-e CLUSTER_NAME=PXC -v mysql-conf:/etc/mysql -e CLUSTER_JOIN=10.1.161.28  \
-e MYSQL_ROOT_PASSWORD=123456 -e EXTRABACKUP_PASSWROD=123456 \
--privileged --name=mysql-node2 --net=host percona/percona-xtradb-cluster:5.7.21


然后重复第一个节点的步骤,修改my.cnf然后重启
node2也好了

测试一下:
node1新建一个用户:
CREATE USER 'haproxy'@'%' IDENTIFIED BY '';
node2用户表看一下有没有这个用户


可选:
继续负载均衡:
#拉取haprox镜像
docker pull haproxy

#新建目录
mkdir -p /data/haproxy
 
 
#新建配置文件
vi /data/haproxy/haproxy.cfg

#haproxy.cfg配置:注意改一下server,server就是两个数据库的连接
global
    #工作目录,这边要和创建容器指定的目录对应
    # chroot /usr/local/etc/haproxy
    #日志文件
    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_monitor
    #统计报告格式
    stats realm Global\ statistics
    #登陆帐户信息
    stats auth admin:admin
    #数据库负载均衡
    listen proxy-mysql
    #访问的IP和端口,haproxy开发的端口为3306
    #假如有人访问haproxy的3306端口,则将请求转发给下面的数据库实例
    bind 0.0.0.0:3306
    #网络协议
    mode tcp
    #负载均衡算法(轮询算法)
    #轮询算法:roundrobin
    #权重算法:static-rr
    #最少连接算法:leastconn
    #请求源IP算法:source
    balance roundrobin
    #日志格式
    option tcplog
    #在MySQL中创建一个没有权限的haproxy用户,密码为空。
    #Haproxy使用这个账户对MySQL数据库心跳检测
    option mysql-check user haproxy
    server MySQL_1 10.1.161.28:3306 check weight 1 maxconn 2000
    server MySQL_2 10.1.161.26:3306 check weight 1 maxconn 2000
    #使用keepalive检测死链
    option tcpka
    
    
    
启动一下:

#在主节点创建haproxy容器
docker run -d -p 8888:8888 -p 3307:3306 -v /data/haproxy:/usr/local/etc/haproxy \
--name haproxy --privileged haproxy	


测一下有没有通:
http://10.1.161.28:8888/dbs_monitor
admin admin

连一下:
10.1.161.28:3306


root 123456


新建一个数据库瞅瞅,发现都同步了,至此,丐版pxc集群完成。
posted @ 2024-04-09 14:47  惊世智慧  阅读(59)  评论(0编辑  收藏  举报