若依Linux与Docker集群部署

若依Linux集群部署

  • 1. 若依
  • 2.MYSQL Linux环境安装
    • 2.1 MYSQL数据库部署和安装
    • 2.2 解压MYSQL安装包
    • 2.3 创建MYSQL⽤户和⽤户组
    • 2.4 修改MYSQL⽬录的归属⽤户
    • 2.5 准备MYSQL的配置⽂件
    • 2.6 正式开始安装MYSQL
    • 2.7 复制启动脚本到资源⽬录
    • 2.8 设置MYSQL系统服务并开启⾃启
    • 2.9 启动MYSQLD
    • 2.10 将 MYSQL 的 BIN ⽬录加⼊ PATH 环境变量
    • 2.11 ⾸次登陆MYSQL
    • 2.12 设置远程主机登录
    • 2.2 Redis部署
      • 2.2.1 查看REDIS服务启动情况
      • 2.2.2 设置允许远程连接
      • 2.2.2 设置访问密码
  • 3. 代码部分
    • 3.1 本地调通
  • 4. Linux小集群部署
    • 4.1 前段代码(华为云)
    • 4.2 后端代码(天翼云、腾讯云)
  • n.Docker部署(todo)
    • 3.1 Docker安装Mysql
    • 3.2 录制快照
  • 附录

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

这里我使用的是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

2.3 创建MYSQL⽤户和⽤户组

groupadd mysql
useradd -g mysql mysql

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

2.4 修改MYSQL⽬录的归属⽤户

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

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

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

mkdir /var/lib/mysql
chmod 777 /var/lib/mysql

2.6 正式开始安装MYSQL

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

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

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

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

在这里插入图片描述

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

执⾏如下命令复制:

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

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

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

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

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

chmod +x /etc/init.d/mysqld

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

chkconfig --add mysqld

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

chkconfig --list mysqld

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

2.9 启动MYSQLD

直接执⾏:

service mysqld start

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

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

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

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

source ~/.bash_profile

2.11 ⾸次登陆MYSQL

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

mysql -u root -p

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

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

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

在这里插入图片描述

2.12 设置远程主机登录

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

2.2 Redis部署

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

解压安装包

cd /usr/local/
mkdir redis
cd redis

在这里插入图片描述

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

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

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


编译并安装

cd redis-5.0.8/
make && make install

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

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

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

2.2.1 查看REDIS服务启动情况

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

systemctl status redis_6379.service

在这里插入图片描述

启动REDIS客户端并测试

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

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

2.2.2 设置允许远程连接

编辑 redis 配置⽂件

vim /etc/redis/6379.conf

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

systemctl restart redis_6379.service

2.2.2 设置访问密码

编辑 redis配置⽂件

vim /etc/redis/6379.conf

找到如下内容:

#requirepass foobared

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

requirepass codesheep

保存,重启 Redis 服务即可

systemctl restart redis_6379.service

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

在这里插入图片描述

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)" 

安装Redis

brew install redis启动redis
brew services start redis查看一下版本(复制如下代码到终端运行):
redis-server查看redis进程
ps axu | grep redis停止redis
brew services stop redis

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

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

4. Linux小集群部署

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

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

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

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

4.1 前段代码(华为云)

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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 &

在这里插入图片描述

在这里插入图片描述
虽然前后端都发布了,但是前段的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

3.2 录制快照

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

附录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/142824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu小技巧30--23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer

ubuntu小技巧30-- 23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer 介绍解決方法说明 介绍 近期在电脑上安装了 ubuntu 23.10桌面版本, 安装最新版钉钉后无法正常打开软件&#xff0c;报错 undefined symbol: FT_Get_Color_Glyph_Layer &#xff0c;具…

手把手带你学习 JavaScript 的 ES6 ~ ESn

文章目录 一、引言二、了解 ES6~ESn 的新特性三、掌握 ES6~ESn 的用法和实现原理四、深入挖掘和拓展《深入理解现代JavaScript》编辑推荐内容简介作者简介精彩书评目录 一、引言 JavaScript 是一种广泛使用的网络编程语言&#xff0c;它在前端开发中扮演着重要角色。随着时间的…

基于opencv+tensorflow+神经网络的智能银行卡卡号识别系统——深度学习算法应用(含python、模型源码)+数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境OpenCV环境 相关其它博客工程源代码下载其它资料下载 前言 本项目基于从网络获取的多种银行卡数据集&#xff0c;采用OpenCV库的函数进行图像处理&#xff0c;并通过神经网络进行模型训练。最终实…

6.jvm中对象创建流程与内存分配

目录 概述对象的创建流程对象的内存分配方式对象怎样才会进入老年代大对象直接进入老年代内存担保 jvc 相关指令查看jdk默认使用的gc查看当前jdk支持的有哪些gc查看指定进程当前正在使用的gc 结束 概述 相关文章在此总结如下&#xff1a; 文章地址jvm基本知识地址jvm类加载系…

国际阿里云:提高CDN缓存命中率教程!!!

CDN缓存命中率低会导致源站压力大&#xff0c;静态资源访问效率低。您可以根据导致CDN缓存命中率低的具体原因&#xff0c;选择对应的优化策略来提高CDN的缓存命中率。 背景信息 CDN通过将静态资源缓存在CDN节点上实现资源访问加速。当客户端访问某资源时&#xff0c;如果CDN节…

算不上最全,但都是必备——Spring这些不会不行啊

Spring 篇 Spring框架中的单例bean是线程安全的吗&#xff1f; 不是线程安全的 Spring bean并没有可变的状态(比如Service类和DAO类)&#xff0c;所以在某种程度上说Spring的单例bean是线程安全的。 Spring框架中有一个Scope注解&#xff0c;默认的值就是singleton&#xff0…

Windows如何正确设置PHP环境变量以在Git Bash中运行命令

1、随便找一个目录&#xff0c;鼠标右键打开git bash here 2、cd的根目录 3、找到php安装目录 4、 在根目录下打开 vim .bash_profile &#xff0c;添加环境变量&#xff0c;php地址根据自己的本地地址而定 PATH$PATH:/d/phpstudy_pro/Extensions/php/php7.3.4nts 添加后保存…

基于Rabbitmq和Redis的延迟消息实现

1 基于Rabbitmq延迟消息实现 支付时间设置为30&#xff0c;未支付的消息会积压在mq中&#xff0c;给mq带来巨大压力。我们可以利用Rabbitmq的延迟队列插件实现消息前一分钟尽快处理 1.1定义延迟消息实体 由于我们要多次发送延迟消息&#xff0c;因此需要先定义一个记录消息…

2.6 Windows驱动开发:使用IO与DPC定时器

本章将继续探索驱动开发中的基础部分&#xff0c;定时器在内核中同样很常用&#xff0c;在内核中定时器可以使用两种&#xff0c;即IO定时器&#xff0c;以及DPC定时器&#xff0c;一般来说IO定时器是DDK中提供的一种&#xff0c;该定时器可以为间隔为N秒做定时&#xff0c;但如…

RedCap推动5G规模应用,紫光展锐赋能产业高质量发展

5G R17 RedCap作为面向中高速物联网场景的关键技术和解决方案&#xff0c;可以大幅降低终端的复杂度、成本和功耗。在当前国内5G应用规模化发展关键时期&#xff0c;5G R17 RedCap拥有广大的市场潜力与广泛的应用场景&#xff0c;将有助于推动5G规模应用、构建融通发展的5G生态…

【C++】join ()和detach ()函数详解和示例

简单的来说&#xff0c;join ()方法建立的线程具有阻碍作用&#xff0c;该线程不结束&#xff0c;另一些函数就无法运行。detach ()方法建立的线程&#xff0c;可以和另一些函数同时进行。下面以示例进行详细说明&#xff0c;以帮助大家理解和使用。 目录 join ()detach () jo…

PHP使用文件缓存实现html静态化

<?php // 动态生成的内容 $content "<html><body><h1>time:".date("Y-m-d H:i:s")."</h1></body></html>"; // 静态文件保存路径和文件名 $staticFilePath "file.html"; if(file_exists($s…

Ladybug 全景相机, 360°球形成像,带来全方位的视觉体验

360无死角全景照片总能给人带来强烈的视觉震撼&#xff0c;有着大片的既视感。那怎么才能拍出360球形照片呢&#xff1f;它的拍摄原理是通过图片某个点位为中心将图片其他部位螺旋式、旋转式处理&#xff0c;从而达到沉浸式体验的效果。俗话说“工欲善其事&#xff0c;必先利其…

java实现计数排序

图解 计数排序是一种线性时间复杂度的排序算法&#xff0c;它不基于比较排序&#xff0c;而是根据待排序序列中元素的值来进行排序。 具体的过程如下&#xff1a; 统计序列中每个元素出现的个数&#xff0c;得到一个计数数组count。其中&#xff0c;count[i]表示待排序序列中值…

AIGC:使用bert_vits2实现栩栩如生的个性化语音克隆

1 VITS2模型 1.1 摘要 单阶段文本到语音模型最近被积极研究&#xff0c;其结果优于两阶段管道系统。以往的单阶段模型虽然取得了较大的进展&#xff0c;但在间歇性非自然性、计算效率、对音素转换依赖性强等方面仍有改进的空间。本文提出VITS2&#xff0c;一种单阶段的文本到…

Xilinx Kintex7中端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…

Java安全架构 JCA、JCE、JSSE、JAAS

Java语言拥有三大特征&#xff1a;平台无关性、网络移动性和安全性&#xff0c;而Java安全体系结构对这三大特征提供了强大的支持和保证&#xff0c; Java安全体系结构总共分为4个部分&#xff1a; &#xff08;1&#xff09;JCA&#xff08; Java Cryptography Architecture…

工具及方法 - 手机扫条码工具: SCANDIT APP

一般扫个链接使用微信扫一扫即可。扫具体条码&#xff0c;可以在微信里搜索小程序&#xff0c;打开也能扫&#xff0c;得到条码内容。 还有其他方式&#xff0c;比如使用淘宝、百度等APP也可以直接扫码条码&#xff0c;还能得到更多的信息。 使用百度的话&#xff0c;不扫条码…

【洛谷算法题】P5711-闰年判断【入门2分支结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5711-闰年判断【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格式&a…

诡异的bug之dlopen

序 本文给大家分享一个比较诡异的bug&#xff0c;是关于dlopen的&#xff0c;我大致罗列了我项目中使用代码方式及结构&#xff0c;更好的复现这个问题&#xff0c;也帮助大家进一步理解dlopen. 问题复现 以下是项目代码的文件结构&#xff1a; # tree . ├── file1 │ …