• 若依Linux与Docker集群部署


    1. 若依

    1. 若依前后端分离项目地址:https://gitee.com/y_project/RuoYi-Vue
    2. 若依Linux集群部署课程
    3. 若依官网

    2.MYSQL Linux环境安装

    2.1 MYSQL数据库部署和安装

    这⾥下载的是 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 安装包,并将其直接放在了 root⽬录下

    卸载系统⾃带的MARIADB(如果有)
    如果系统之前⾃带 Mariadb ,可以先卸载之。
    ⾸先查询已安装的 Mariadb 安装包

    rpm -qa|grep mariadb

    在这里插入图片描述

    将其均卸载之:

    yum -y remove mariadb-server-5.5.56-2.el7.x86_64
    yum -y remove mariadb-5.5.56-2.el7.x86_64
    yum -y remove mariadb-devel-5.5.56-2.el7.x86_64
    yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
    
    • 1
    • 2
    • 3
    • 4

    这里我使用的是mac系统安装的虚拟机,所以命令有所不一样
    在这里插入图片描述

    在这里插入图片描述

    2.2 解压MYSQL安装包

    将上⾯准备好的 MySQL 安装包解压到 /usr/local/ ⽬录,并重命名为 mysql

    tar -zxvf /root/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ 
    
    mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql
    
    • 1
    • 2
    • 3

    2.3 创建MYSQL⽤户和⽤户组

    groupadd mysql
    useradd -g mysql mysql
    
    • 1
    • 2

    同时新建 /usr/local/mysql/data ⽬录,后续备⽤

    2.4 修改MYSQL⽬录的归属⽤户

    [root@localhost mysql]# chown -R mysql:mysql ./
    
    • 1

    2.5 准备MYSQL的配置⽂件

    /etc ⽬录下新建 my.cnf ⽂件
    写⼊如下简化配置:

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    socket=/var/lib/mysql/mysql.sock
    [mysqld]
    skip-name-resolve
    #设置3306端⼝
    port = 3306
    socket=/var/lib/mysql/mysql.sock
    # 设置mysql的安装⽬录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放⽬录
    datadir=/usr/local/mysql/data
    # 允许最⼤连接数
    max_connections=200
    # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使⽤的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    同时使⽤如下命令创建 /var/lib/mysql ⽬录,并修改权限:

    mkdir /var/lib/mysql
    chmod 777 /var/lib/mysql
    
    • 1
    • 2

    2.6 正式开始安装MYSQL

    执⾏如下命令正式开始安装:

    cd /usr/local/mysql
    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
    • 1
    • 2

    在这里插入图片描述
    注意:记住上⾯打印出来的 root 的密码,后⾯⾸次登陆需要使⽤

    这里因为我需要aarch结构的文件才能执行,M系列芯片不能运行x86-64得Mysql bin所以后续我将用Docker来实现

    在这里插入图片描述

    2.7 复制启动脚本到资源⽬录

    执⾏如下命令复制:

    [root@localhost mysql]# cp ./support-files/mysql.server
    /etc/init.d/mysqld
    
    • 1
    • 2

    并修改 /etc/init.d/mysqld ,修改其 basedir 和 datadir 为实际对应⽬录:

    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    
    • 1
    • 2

    2.8 设置MYSQL系统服务并开启⾃启

    ⾸先增加 mysqld 服务控制脚本执⾏权限:

    chmod +x /etc/init.d/mysqld
    
    • 1

    同时将 mysqld 服务加⼊到系统服务:

    chkconfig --add mysqld
    
    • 1

    最后检查 mysqld 服务是否已经⽣效即可:

    chkconfig --list mysqld
    
    • 1

    在这里插入图片描述
    这样就表明 mysqld 服务已经⽣效了,在2、3、4、5运⾏级别随系统启动⽽⾃动启动,以后可以直接使⽤ service 命令控制 mysql 的启停。

    2.9 启动MYSQLD

    直接执⾏:

    service mysqld start
    
    • 1

    2.10 将 MYSQL 的 BIN ⽬录加⼊ PATH 环境变量

    这样⽅便以后在任意⽬录上都可以使⽤ mysql 提供的命令。
    编辑 ~/.bash_profile ⽂件,在⽂件末尾处追加如下信息:

    export PATH=$PATH:/usr/local/mysql/bin
    
    • 1

    在这里插入图片描述
    最后执⾏如下命令使环境变量⽣效

    source ~/.bash_profile
    
    • 1

    2.11 ⾸次登陆MYSQL

    以 root 账户登录 mysql ,使⽤上⽂安装完成提示的密码进⾏登⼊

    mysql -u root -p
    
    • 1

    在这里插入图片描述
    接下来修改ROOT账户密码

    在mysql的命令⾏执⾏如下命令即可,密码可以换成你想⽤的密码即可:

    mysql>alter user user() identified by "111111";
    mysql>flush privileges;
    
    • 1
    • 2

    在这里插入图片描述

    2.12 设置远程主机登录

    mysql> use mysql;
    mysql> update user set user.Host='%' where user.User='root';
    mysql> flush privileges;
    
    • 1
    • 2
    • 3

    2.2 Redis部署

    这⾥下载的是 redis-5.0.8.tar.gz 安装包,并将其直接放在了 root ⽬录下

    解压安装包

    cd /usr/local/
    mkdir redis
    cd redis
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    将 Redis 安装包解压到 /usr/local/redis 中即可

    [root@localhost redis]# tar zxvf /root/redis-5.0.8.tar.gz -C ./
    
    • 1

    解压完之后, /usr/local/redis ⽬录中会出现⼀个 redis-5.0.8 的⽬录


    编译并安装

    cd redis-5.0.8/
    make && make install
    
    • 1
    • 2

    将 REDIS 安装为系统服务并后台启动
    进⼊ utils ⽬录,并执⾏如下脚本即可:

    [root@localhost redis-5.0.8]# cd utils/
    [root@localhost utils]# ./install_server.sh
    
    • 1
    • 2

    此处我全部选择的默认配置即可,有需要可以按需定制
    在这里插入图片描述

    2.2.1 查看REDIS服务启动情况

    直接执⾏如下命令来查看Redis的启动结果:

    systemctl status redis_6379.service
    
    • 1

    在这里插入图片描述

    启动REDIS客户端并测试

    启动⾃带的 redis-cli 客户端,测试通过:

    在这里插入图片描述
    但是此时只能在本地访问,⽆法远程连接,因此还需要做部分设置

    2.2.2 设置允许远程连接

    编辑 redis 配置⽂件

    vim /etc/redis/6379.conf
    
    • 1

    将 bind 127.0.0.1 修改为 0.0.0.0
    在这里插入图片描述
    然后重启 Redis 服务即可:

    systemctl restart redis_6379.service
    
    • 1

    2.2.2 设置访问密码

    编辑 redis配置⽂件

    vim /etc/redis/6379.conf
    
    • 1

    找到如下内容:

    #requirepass foobared
    
    • 1

    去掉注释,将 foobared 修改为⾃⼰想要的密码,保存即可。

    requirepass codesheep
    
    • 1

    保存,重启 Redis 服务即可

    systemctl restart redis_6379.service
    
    • 1

    这样后续的访问需要先输⼊密码认证通过⽅可:

    在这里插入图片描述

    3. 代码部分

    代码仓库https://gitee.com/y_project/RuoYi-Vue 这是一个若依前后端分离项目。

    3.1 本地调通

    在本地数据库新建一个库,ry-vue
    在这里插入图片描述
    在图形化界面中执行若依项目中的两个SQL文件
    在这里插入图片描述

    在这里插入图片描述

    在本地新建一个log文件夹,并将若依的日志指向调整为新建的目录
    在这里插入图片描述

    这里插入一个Homebrew的安装https://zhuanlan.zhihu.com/p/111014448

    视频地址:
    https://www.bilibili.com/video/BV1634y1t7B9/?share_source=copy_web&vd_source=6888e998072955ff0cd273996df291f5

    Homebrew安装命令:

    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 
    
    • 1

    安装Redis

    brew install redis
    
    启动redis
    brew services start redis
    
    查看一下版本(复制如下代码到终端运行):
    redis-server
    
    查看redis进程
    ps axu | grep redis
    
    停止redis
    brew services stop redis
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

    本地配置好redis、mysql、日志路径之后Redis可以正常启动
    在这里插入图片描述

    4. Linux小集群部署

    共计3台服务器,分别是腾讯云、华为云、天翼云三台服务器。其中华为云部署前端以及提供MYSQL与Redis服务。另外两台部署后端服务。

    华为云安装redis、MySQL
    mysql 初始密码Mr%d;N?ce4
    在这里插入图片描述
    这里华为云需要修改入方向规则
    在这里插入图片描述
    代码中需要修改的地方

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    全部的encode地方加上charset
    在这里插入图片描述

    注意华为云6379接口要开放
    在这里插入图片描述

    4.1 前段代码(华为云)

    我把ruoyi-ui的前段代码打包
    在这里插入图片描述
    上传到服务器中
    在这里插入图片描述
    然后在workspace中解压代码

    华为云要安装nginx并且放开80端口
    在这里插入图片描述

    华为云中修改nginx文件
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    重启nginx之后前段就可以访问了

    /usr/local/nginx/sbin/nginx -s reload
    
    • 1

    在这里插入图片描述

    4.2 后端代码(天翼云、腾讯云)

    在这里插入图片描述

    在这里插入图片描述

    因为是SpringBOOT项目内置了Tomcat直接打jar包。上图是两种打包方式都可以。第一个图先cleanpackage

    jar包位置。
    在这里插入图片描述
    这里不打war包了,还要安装tomcat,需要打war包可以看视频(最上面的)

    **在腾讯云中执行如下命令**
    [root@VM-8-7-centos ruoyi]# pwd
    /root/workspace/ruoyi
    
    [root@VM-8-7-centos ruoyi]# nohup java -jar ruoyi-admin.jar &
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    在这里插入图片描述
    虽然前后端都发布了,但是前段的nginx代理还未配置。也就是说前段现在没有访问到后端接口
    在这里插入图片描述
    在华为云中修改了nginx并重启了nginx

    这里腾讯云记得打开8080端口
    在这里插入图片描述

    为了集群部署,我们还是需要修改nginx,并设置天翼云权重为3,腾讯云的为5
    在这里插入图片描述

    再次将nginx reload一下,当前天翼云的后端服务也运行起来了。

    查看天翼云
    在这里插入图片描述
    这里天翼云有个坑,8080端口不备案不开放,我重新换成了8081端口

    这里算是部署好了前后端
    在这里插入图片描述
    为了验证效果,以及看一下Nginx转发。当我输入错误验证码时可以看到多次访问的是腾讯服务器因为它的权重更高
    在这里插入图片描述
    在这里插入图片描述

    n.Docker部署(todo)

    Docker请看我的专栏http://t.csdnimg.cn/2rLIs

    3.1 Docker安装Mysql

    这里我已经安装过mysql了,不熟悉如何Docker安装mysql可以看专栏。

    我目前Docker正在run的容器有
    在这里插入图片描述
    此处我发现时间不准确。通过将NTP服务代理为阿里云解决。

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

    [root@node ~]# vim /etc/ntp.conf
    [root@node ~]# grep server /etc/ntp.conf 
    # Use public servers from the pool.ntp.org project.
    #server 0.centos.pool.ntp.org iburst
    server ntp.aliyun.com iburst
    #broadcast 192.168.1.255 autokey # broadcast server
    #broadcast 224.0.1.1 autokey  # multicast server
    #manycastserver 239.255.254.254  # manycast server
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.2 录制快照

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

    附录

    1.同步阿里云时间 https://www.cnblogs.com/liulianzhen99/articles/17637056.html
    2.Mac 如何安装 Homebrew
    3.Homebrew安装以及使用Redis

  • 相关阅读:
    LeetCode第876题—链表的中间结点
    GEE4:FCMASK算法进行去云处理
    10个实用的CSS样式之悬浮卡片
    十二,HDR环境贴图卷积
    (六)Vue之MVVC
    1372. Longest ZigZag Path in a Binary Tree
    从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(九)文件服务篇(2):集成minio文件服务
    MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
    RTPS协议之Behavior Module
    VUE day_09(7.27) vue3、TS
  • 原文地址:https://blog.csdn.net/Blue_Pepsi_Cola/article/details/134351685