IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux服务器管理——高可用电商项目系统部署方案 -> 正文阅读

[系统运维]linux服务器管理——高可用电商项目系统部署方案

linux服务器管理——高可用电商项目系统部署方案

高可用电商项目系统部署方案报告

前言

liunx服务器管理
B站地址:https://www.bilibili.com/video/BV1KY4y1z73K?p=4&spm_id_from=pageDriver
视频中肯定是有一些问题的,敬请指正,谢谢

[摘 要]

为某电商项目搭建高可用的部署方案,其中使用到lvs的dr模式负载均衡为主体,运用mysql集群和GlusterFS集群结合keepalived保证商品图片和视频的文件服务和防止意外发生,满足日浏览量200万和成交10万单的业务量

[关键词]

lvs负载均衡,mysql双主双从,高可用企业电商部署方案,GlusterFS分布式文件系统集群,keepalived

环境

环境版本
centos7.9
nginx1.2.6
GlusterFS6.0+
Mysql5.7

(表一为环境版本对应表)

拓扑图

完整拓扑图

在这里插入图片描述

(图一为详细系统拓扑图)

机器ip地址VIPGW
router210.202.135.1,10.0.0.200192.168.112.1
lvs110.0.0.1010.0.0.10010.0.0.200
lvs210.0.0.1110.0.0.10010.0.0.200
rs110.0.0.1510.0.0.200
rs210.0.0.1610.0.0.200
rs310.0.0.1710.0.0.200
rs410.0.0.1810.0.0.200

(表二为详细系统拓扑对应表)

准备工作

必要安装和操作

我们需要在centos7上安装ipvsadm和keepalived,并且关闭防火墙

yum -y install ipvsadm keepalived
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

克隆

在这里插入图片描述

(图二为centos7克隆位置图)

在这里插入图片描述

(图三为centos7克隆操作图)
在这里插入图片描述

(图四为centos7克隆结果图)

搭建LVS的DR模式

简单拓扑

一开始搭建简单的拓扑结构,后续增加realserver3和realserver4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BFlm6B6L-1654045667047)(D:\B站直播录制\linux\搭建\imgs\image-20220531055609836.png)]

(图五为初始搭建的简单拓扑图)

配置IP

router

查看网卡的uuid以及mac地址
cd /etc/sysconfig/network-scripts
nmcli con show
//网卡的uuid以及mac地址
24fdc2d7-3fc5-480f-b380-074fed3b5e17 
00:0c:29:57:ee:c7
1cd7f152-79ee-3565-bab4-7a4a68e234f8
//重启网络服务
service network restart

在这里插入图片描述

(图六为网卡的uuid以及mac地址对应图)

配置静态IP
vim ifcfg-ens33
vim ifcfg-ens37
//ens33配置详情
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.200
NETMASK=255.0.0.0
GATEWAY=192.168.112.1
DNS1=114.114.114.114

//ens37配置详情
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
UUID=1cd7f152-79ee-3565-bab4-7a4a68e234f8
DEVICE=ens37
ONBOOT=yes

IPADDR=210.202.135.1
GATEWAY=192.168.112.1
NETMASK=255.255.255.0
DNS1=114.114.114.114
测试连通

在这里插入图片描述

(图八为测试router的连通图)

router启动路由转发
cd /proc/sys/net/ipv4
echo 1 >> ip_forward

在这里插入图片描述

(图九为router启动路由转发结果图)

查看路由表
route -n

在这里插入图片描述

(图十为路由表显示图)

lvs1

ens33:c31f05a0-503b-3522-8fe0-20d0ed06cac1
ens37:24fdc2d7-3fc5-480f-b380-074fed3b5e17

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.10
NETMASK=255.0.0.0
GATEWAY=10.0.0.200
DNS1=114.114.114.114

lvs2

ens33:64d22abf-b543-3d0f-b208-98199a41c76c
ens33:24fdc2d7-3fc5-480f-b380-074fed3b5e17

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.11
NETMASK=255.0.0.0
GATEWAY=10.0.0.200
DNS1=114.114.114.114

RS1的IP配置

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.15
NETMASK=255.0.0.0
GATEWAY=10.0.0.200
DNS1=114.114.114.114

RS2的IP配置

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.16
NETMASK=255.0.0.0
GATEWAY=10.0.0.200
DNS1=114.114.114.114

配置keepalived

lvs1

修改keepalived.conf文件

cd /etc/keepalived/
vim keepalived.conf
! Configuration File for keepalived

global_defs {                                    
   router_id LVS_1            
}        
vrrp_instance VI_1 {
    state MASTER   #备用机为BACKUP
    interface ens37   #绑定VIP的网卡为ens33,根据自己服务器设置
    virtual_router_id 51
    priority 100   #权重,主机应该更大
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.100    # vip01
    }
}

vrrp_instance VI_2 {
    state BACKUP
    interface ens37
    virtual_router_id 55
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.101    # vip02
    }
}

virtual_server 10.0.0.100 80 {
        delay_loop 6  #每过6秒查询node的状态
        lb_algo rr   #lvs负载均衡算法,rr为轮询
        lb_kind DR   #DR模式
        protocol TCP  #用tcp协议检查node状态

        #下面是配置被负载均衡的真实服务器nginx
        real_server 10.0.0.15 80 {
                weight 2   #权重
                TCP_CHECK {
                        connect_port 80
                        connect_timeout 1
                        nb_get_retry 2
                        delay_before_retry 1
                }
        }
}

virtual_server 10.0.0.101 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP

        real_server 10.0.0.16 80 {
                weight 2
                TCP_CHECK {
                        connect_port 80
                        connect_timeout 1
                        nb_get_retry 2
                        delay_before_retry 1
                }
        }
}


启动keepalived并设置自启动

systemctl start keepalived.service
systemctl enable keepalived.service

在这里插入图片描述

(图十一为设置启动keepalived并设置自启动结果图)

lvs2

//修改keepalived.conf文件
cd /etc/keepalived/
vim keepalived.conf

//conf配置详情
! Configuration File for keepalived

global_defs {                                    
   router_id LVS_2         
}   

vrrp_instance VI_1 {
    state BACKUP
    interface ens37
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.100    # vip01
    }
}

vrrp_instance VI_2 {
    state MASTER             
    interface ens37
    virtual_router_id 55
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.101    # vip02
    }
}

virtual_server 10.0.0.100 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP

        real_server 10.0.0.15 80 {
                weight 2
                TCP_CHECK {
                        connect_port 80
                        connect_timeout 1
                        nb_get_retry 2
                        delay_before_retry 1
                }
        }
}

virtual_server 10.0.0.101 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP

        real_server 10.0.0.16 80 {
                weight 2
                TCP_CHECK {
                        connect_port 80
                        connect_timeout 1
                        nb_get_retry 2
                        delay_before_retry 1
                }
        }
}

//启动keepalived并设置自启动
systemctl start keepalived.service
systemctl enable keepalived.service

统一配置RS

安装gcc

yum -y install gcc

安装nginx

//更新yum源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
//安装
yum -y install nginx

设置nginx启动与自启动

systemctl start nginx.service
systemctl enable nginx.service

关于nginx的基础知识

nginx部署目录
/usr/share/nginx/html
nginx配置目录
/etc/nginx(default.conf,conf.d)

安装net-tools

yum install net-tools

RS1编辑dr模式脚本

vim /usr/local/sbin/lvs_dr_rs.sh

//脚本详情
#/bin/bash
vip01=10.0.0.15
vip02=10.0.0.16
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip01 broadcast $vip01 netmask 255.255.255.255 up
route add -host $vip01 lo:0

ifconfig lo:1 $vip02 broadcast $vip02 netmask 255.255.255.255 up
route add -host $vip02 lo:1
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#限制arp响应请求
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
#限制arp发送请求
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

运行并设置脚本自启动

//运行
sh lvs_dr_rs.sh
//自启动
cd /etc/rc.d/
vim rc.local
//在rc.local中添加
sh /usr/local/sbin/lvs_dr_rs.sh
//设置rc.local能被操作
chmod a=rwx rc.local

在这里插入图片描述

(图十二为在rc.local配置图)

在这里插入图片描述

(图十三为rc.local权限图)

RS2编辑dr模式脚本

vim /usr/local/sbin/lvs_dr_rs.sh

#/bin/bash
vip01=10.0.0.15
vip02=10.0.0.16
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip01 broadcast $vip01 netmask 255.255.255.255 up
route add -host $vip01 lo:0

ifconfig lo:1 $vip02 broadcast $vip02 netmask 255.255.255.255 up
route add -host $vip02 lo:1
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#限制arp响应请求
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
#限制arp发送请求
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

//运行
sh lvs_dr_rs.sh
//自启动
cd /etc/rc.d/
vim rc.local
sh /usr/local/sbin/lvs_dr_rs.sh
chmod a=rwx rc.local

查看结果

ip addr

rs

在这里插入图片描述

(图十四为realserver的ip详情图)

lvs

在这里插入图片描述

(图十五为lvs的ip详情图)

若见到如图所示,则证明配置成功生效

MYSQL的双主互从

准备工作

卸载mariadb

//查询mariadb的软件包
rpm -qa | grep -i mariadb
//彻底卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
//查找mysql的包
rpm -qa | grep mysql

安装mysql

//安装wget
yum -y install wget
//获取mysql的镜像地址进行更新
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
//安装
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
//可能出现的错误1,请查看本文的错误模块

开启mysql并设置自启动

//开启mysql的服务
systemctl start mysqld.service
systemctl status mysqld.service
成功截图

在这里插入图片描述

(图十五为mysql服务运行图)

mysql配置

查看临时密码

grep "password" /var/log/mysqld.log
//我的临时密码: sFFdT>fp1>0I

登录mysql

mysql -u root -p

在这里插入图片描述

(图十六为mysql登录成功图)

修改mysql的密码

重设密码为最低级标准
//修改密码策略为0,=号后的数字越高安全等级越高最高是4
set global validate_password_policy=0;
//重设密码的默认长度
set global validate_password_length=1;
重设密码
set password for 'root'@'localhost'=password('123456');

### 配置双主互从

1.重启net服务

将ens33连接

在这里插入图片描述

(图十七为网络连接设置位置图)

service network restart

2.确保mysql端口启用

netstat -nltp

在这里插入图片描述

(图十八为确认mysql端口启用图)

3.配置my.cnf

vim /etc/my.cnf
rs1的配置
//增加的配置RS1
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

server-id=100
log-bin=mysql-bin
log-slave-updates
binlog_format=ROW
binlog_row_image=FULL
expire_logs_days=7

auto_increment_increment=1
auto_increment_offset=1

//无需同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema

#binlog-do-db=test
rs2的配置
//增加的配置RS2
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

server-id=101
log-bin=mysql-bin
log-slave-updates
binlog_format=ROW
binlog_row_image=FULL
expire_logs_days=7

auto_increment_increment=1
auto_increment_offset=2

binlog-ignore-db=mysql
binlog-ignore-db=information_schema

#binlog-do-db=test

4.若你的机器是克隆的则要修改mysql的server-uuid

若非克隆机则无需修改,若克隆不修改则出现错误3

查询server-uuid

进入你当前机器的mysql

show global variables like '%uuid';

利用mysql生成uuid
select uuid();
查看并修改你当前的uuid
cd /var/lib/mysql/
//查看auto.cnf
cat auto.cnf
vim auto.cnf

在这里插入图片描述

(图十九为auto.cnf中mysql的uuid设置图)

重启mysql服务
systemctl restart mysqld.service

5.添加一个测试用户

//先修改密码策略,请参看上方密码策略修改
//添加新用户
GRANT REPLICATION SLAVE, FILE, REPLICATION CLIENT ON *.* TO 'repluser'@'%' IDENTIFIED BY '123456';
//刷新策略
FLUSH PRIVILEGES;
//查看是否成功
use mysql;
select user from user;

在这里插入图片描述

(图二十为策略成功用户添加成功图)

6.查看主节点状态

show master status;

在这里插入图片描述

(图二十一为rs1的主节点状态图)

在这里插入图片描述

(图二十二为rs2的主节点状态图)

7.配置主从

rs1需要配置rs2的ip地址以及rs2的节点状态,rs2则相反

//rs1
change master to master_host='10.0.0.16',master_port=3306,
master_user='repluser',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=1030;
//rs2
change master to master_host='10.0.0.15',master_port=3306,
master_user='repluser',master_password='123456',
master_log_file='mysql-bin.000004',master_log_pos=154;

8.启动并查看slave

//启动slave
start slave;
//设置同步(注意设置同步必须在启动之前或关闭后,再启动)
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
//查看slave状态
show slave status \G;
若出现,说明未启动
Slave_IO_Running: No
Slave_SQL_Running: No

在这里插入图片描述

(图二十三为slave未启动图)

启动成功

若启动成功后出现Slave_IO_Running,Slave_SQL_Running两者不同步则参看错误3

Slave_IO_Running: No
Slave_SQL_Running: Yes

正常启动示例

 Slave_IO_State: Connecting to master
                  Master_Host: 10.0.0.15
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 619
               Relay_Log_File: localhost-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

在这里插入图片描述

(图二十四为slave正在启动图)
在这里插入图片描述

(图二十五为slave启动成功图)

9.测试

在RS1上

去为数据创建一个数据库并添加一个数据表

show databases;
create database test;
create table `test`.`user`(`id` INT NOT NULL AUTO_INCREMENT ,`username` VARCHAR(20),PRIMARY KEY (`id`));
show tables;
在RS2上

若查询对应创建的数据库发现创建成功并有表说明数据同步成功

在这里插入图片描述

(图二十六为rs2数据同步成功结果图)

MYSQL配置双主双从

更新拓扑图

增加realserver3和realserver4并配置IP如上
在这里插入图片描述

(图二十七为更新后拓扑图)

配置新增的两台realserver

rs3

配置ens33网卡静态ip
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.17
NETMASK=255.0.0.0
GATEWAY=10.0.0.200
DNS1=114.114.114.114

rs4

配置ens33网卡静态ip
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=24fdc2d7-3fc5-480f-b380-074fed3b5e17
DEVICE=ens33
ONBOOT=yes

IPADDR=10.0.0.18
NETMASK=255.0.0.0
GATEWAY=10.0.0.200
DNS1=114.114.114.114
配置uuid和my.cnf

参看上方双主互从的第四步

配置slave

设置与主数据库同步,在这里我们从拓扑图中可以看出rs3是rs1的从,rs4是rs2的从

先到主中停止slave

在rs3中设置rs1,rs4中设置rs2如下

//rs1
change master to master_host='10.0.0.16',master_port=3306,
master_user='repluser',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=1030;
//rs2
change master to master_host='10.0.0.15',master_port=3306,
master_user='repluser',master_password='123456',
master_log_file='mysql-bin.000004',master_log_pos=154;

最后重启服务再执行启动slave,最后你应该看到四台机器的slave都状态都是成功同步的

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

测试

原始数据库

原始数据库中,rs1~rs4都具有如下图数据

在这里插入图片描述

(图二十八为原始数据库数据图)

删除记录

我们在rs1中对共有数据进行删除

delete from user where id = 5;

在这里插入图片描述

最后我们发现四台机器上都没有了数据表,表示双主双从数据同步成功!

在这里插入图片描述

(图二十九为测试双主双从示例成功图)

使用GlusterFS搭建分布式文件系统

官方地址:

https://www.gluster.org/

安装

分别在两台rs1和rs2上安装

yum install centos-release-gluster
yum install glusterfs-server

启动服务

分别在两台rs1和rs2上启动

systemctl start glusterd
systemctl enable glusterd
systemctl status glusterd

在这里插入图片描述

(图三十为GlusterFS服务启动成功图)

建立信任池

在这里只需要在rs1中进行操作即可

gluster peer probe 10.0.0.16
//查看信任池状态
gluster peer status

在这里插入图片描述

(图三十一为搭建信任池成功图)

创建复制卷

设置复制卷目录

rs1上是exp3,rs2上是exp4

mkdir -p /data/exp3
mkdir -p /data/exp4

使用命令创建复制卷

命名为repl-volume

gluster volume create repl-volume replica 2 transport tcp 10.0.0.15:/data/exp3 10.0.0.16:/data/exp4 force
//查看卷信息
gluster volume info repl-volume
//开启卷
gluster volume start repl-volume

在这里插入图片描述

(图三十二为创建复制卷成功图)
在这里插入图片描述

(图三十三为复制卷信息图)

在这里插入图片描述

(图三十四为复制卷开启成功图)

错误及解决

错误1

mysql服务安装失败,公钥过期或未安装

在这里插入图片描述

(图三十五为错误一截图)

解决

重新去获取2022年的key

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
//重新安装mysql服务
yum -y install mysql-community-server

错误2

mysql缺失libncurses.so.5无法登录

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

解决

安装libncurses.so.5及其依赖

yum -y install libncurses.so.5
yum -y install libncurses*

错误3

由于mysql的connection id相同导致数据无法同步

在这里插入图片描述

(图三十六为错误一截图)

解决

先把当前的mysql的slave停止,然后设置同步,然后确定mysql的uuid以及my.cnf中的server-id与其他机器不同后,重启机器

//关闭slave
stop slave;
//设置同步(注意设置同步必须在启动之前或关闭后,再启动)
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
//重启
reboot

错误4

克隆导致的数据库本来就不同步,后续数据同步后导致数据缺失

解决

从节点还原数据库,锁定主节点
flush table with read lock;
从结点创建数据库

创建缺失的即可

解锁
unlock tables;

参考文献

《CENTOS 7系统管理与运维实战》,王亚飞、王刚 编著,清华大学出版社

keepalived+lvs+dr 主从模式和双主模式配置,神奇的路人A, https://blog.csdn.net/qq_44936079/article/details/121309053

GlusterFS分布式存储,李泽信,https://blog.csdn.net/qq_43704782/article/details/123721006?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-4-123721006-blog-109725764.pc_relevant_antiscanv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-4-123721006-blog-109725764.pc_relevant_antiscanv3

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 19:16:18  更:2022-06-08 19:16:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:58:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码