Linux服务器部署JavaWeb后端项目

适用于:MVVM前后台分离开发、部署、域名配置

前端:Vue
后端:Spring Boot

这篇文章只讲后端部署,前端部署戳这里

目录

  • Step1:服务器上搭建后端所需环境
      • 1、更新服务器软件包
      • 2、安装JDK8
      • 3、安装MySQL
      • 4、登录MySQL
      • 5、修改MySQL配置文件
      • 6、重启MySQL
  • Step2:Spring Boot项目打Jar包
      • 1、jar包放在服务器自定义的目录下
            • `nohup java -jar packageName.jar` VS `java -jar packageName.jar`

Step1:服务器上搭建后端所需环境

1、更新服务器软件包

# centOS
sudo yum update
# Ubuntu
sudo apt-get update

2、安装JDK8

# centOS
sudo yum -y install java-1.8.0-openjdk*
# Ubuntu
sudo apt-get install openjdk-8-jdk

验证安装

java -versionopenjdk version "1.8.0_382"
OpenJDK Runtime Environment (build 1.8.0_382-8u382-ga-1~22.04.1-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)

3、安装MySQL

# centOS
wget 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 --nogpgcheck# Ubuntu
sudo apt-get install mysql-server

验证安装

# 注意大写 V
mysql -V# centOS
mysql  Ver 8.0.34 for Linux on x86_64 (MySQL Community Server - GPL)
# UbunTu
mysql  Ver 8.0.34-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

4、登录MySQL

先去查看默认用户名密码,用这个密码去登录

# 查看
sudo vi /etc/mysql/debian.cnf# 登录
mysql -u debian-sys-maint -p

在这里插入图片描述
密码为上面查到的密码

登录后,修改root密码

mysql> use mysql
# 查看用户的权限,是否是mysql_native_password,如果不是,则将auth_sock改为mysql_native_password
mysql> select Host,user,authentication_string,plugin from user;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';

修改后exit退出,用root账号重新登录

mysql -u root -p

可以看到root权限密码已经修改
在这里插入图片描述

5、修改MySQL配置文件

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

找到
在这里插入图片描述
改为:

bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

6、重启MySQL

service mysql restart

查看端口状态

netstat -an|grep 3306

在这里插入图片描述
发现3306端口是tcp6,这样会导致无法远程连接数据库

Tips:
远程连接数据库如果出现 1130 - Host XXX is not allowed to connect to this MySQL server 错误提示

1、登录MySQL,然后查看配置

mysql> use mysql;
mysql> select host from user where user='root';

在这里插入图片描述

2、可以看到是 localcost,修改配置

update user set host = '%' where user ='root';

3、使配置生效

flush privileges;

4、host设置了“%”后便可以允许远程访问,再次查看

在这里插入图片描述

然后关闭服务器防火墙

sudo systemctl stop ufw

这时候就可以远程连接数据库了

Step2:Spring Boot项目打Jar包

1、jar包放在服务器自定义的目录下

我这里是 /home/AAA_Projects/assessment/
在这里插入图片描述
执行

nohup java -jar packageName.jar &
nohup java -jar packageName.jar VS java -jar packageName.jar

nohup java -jar packageName.jarjava -jar packageName.jar 是两种在Unix和Linux系统中运行Java应用程序的方式,它们之间有一些重要的区别:

  1. 后台运行:

    • nohup java -jar packageName.jarnohup 命令用于在后台运行进程,并且不会受到终端关闭或断开连接的影响。这意味着当你关闭终端或注销时,Java应用程序仍然在运行。
    • java -jar packageName.jar:这只是在当前终端会话中启动Java应用程序,如果你关闭终端,应用程序也会终止。
  2. 输出重定向:

    • nohup java -jar packageName.jarnohup 默认将标准输出重定向到一个名为nohup.out的文件,这是为了捕获应用程序的输出,以便后续查看。你也可以使用> somefile.log来自定义输出文件。
    • java -jar packageName.jar:标准输出通常会在终端中显示,除非你手动重定向它,例如,java -jar packageName.jar > output.log
  3. 退出会话的影响:

    • nohup java -jar packageName.jar:这种方式可以在终端会话退出后继续运行,因此适合长时间运行的任务或后台服务。
    • java -jar packageName.jar:如果从终端启动应用程序,它将在终端会话退出时一同终止。

这时候Spring Boot后端项目部署就大功告成了!

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

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

相关文章

基于FPGA的信号发生器(三角波、方波、正弦波)

目录 DDS实现原理 DDS整体设计框图​ Quartus II 仿真​ modelsim仿真 顶层代码 DDS实现原理 DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器,也可叫DDFS。 DDS是从相位的概念直接合成所需波形的一种频率合成技术。 不仅可以产生不同频率的正弦波,而且可…

Java8实战-总结18

Java8实战-总结18 使用流筛选和切片用谓词筛选筛选各异的元素截短流跳过元素 使用流 流让你从外部迭代转向内部迭代。这样&#xff0c;就用不着写下面这样的代码来显式地管理数据集合的迭代(外部迭代)了&#xff1a; List<Dish> vegetarianDishes new ArrayList<>…

ArcGIS美化科研论文地图(利用在线底图)

1.加载在线底图服务 在ArcGIS Desktop中打开Catalog窗口&#xff0c;在GIS Servers中点击Add ArcGIS Server&#xff0c;之后选项全部默认&#xff0c;仅在URL中输入以下网址https://services.arcgisonline.com/arcgis 之后就可以看到底图了 我们在WorldElevation3D中选择Nat…

16-MyCat

一 Mycat概述 1 什么是Mycat 什么是Mycat Mycat是数据库中间件&#xff0c;所谓数据库中间件是连接Java应用程序和数据库中间的软件。 为什么要用Mycat 遇到问题&#xff1a; Java与数据库的紧耦合高访问量高并发对数据库的压力读写请求数据不一致 2 Mycat与其他中间件区别 目…

QT创建可移动点类

效果如图所示&#xff1a; 创建新类MovablePoint&#xff0c;继承自QWidget. MovablePoint头文件: #ifndef MOVABLEPOINT_H #define MOVABLEPOINT_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QStyleOption> #includ…

TS编译选项

自动监控编译 tsc xxx.ts -w 在一个文件夹下&#xff0c;创建 tsconfig.json 文件&#xff0c;在用命令 tsc 就可以自动编译当前文件夹下的ts文件 tsconfig.json文件配置如下&#xff1a; {/*tsconfig.json 是ts编译器的配置文件&#xff0c;ts编译器可以根据它的信息来对代…

springboot自定义表格(动态合并单元格)

一、需求展示&#xff08;一个订单多个商品&#xff0c;商品数量不限订单行合并&#xff09; 二、技术选型&#xff08;jxls自定义模板&#xff09; <!-- 版本具体看官网Release&#xff0c;这里我们使用 2.13.0 --><dependency><groupId>org.jxls</group…

jQuery 层次选择器

jQuery 层次选择器 &#xff08;0&#xff09;测试前的准备工作 A. 定义测试对象 B. 定义测试对象的 CSS 样式 C. 再定义一些测试用的 button。 &#xff08;1&#xff09;所有后代选择器(A B) 所有后代&#xff0c;包括其直接后代及间接后代。 &#xff08;2&#xff09;直…

javaee spring 测试aop 切面

切面类 package com.test.advice;import org.aspectj.lang.ProceedingJoinPoint;//增强类 public class MyAdvice {//将这个增强方法切入到service层的add方法前public void before(){System.out.println("添加用户之前");}}目标类 package com.test.service;publi…

Vue.js 报错:Cannot read property ‘validate‘ of undefined“

错误解决 起因&#xff0c;是我将elemnt-ui登录&#xff0c;默认放在mounted()函数里面&#xff0c;导致vue初始化就调用这个函数。 找了网上&#xff0c;有以下错误原因&#xff1a; 1.一个是你ref写错了&#xff0c;导致获取不了这个表单dom&#xff0c;我这显然不是。 2.…

【Python爬虫笔记】爬虫代理IP与访问控制

一、前言 在进行网络爬虫的开发过程中&#xff0c;有许多限制因素阻碍着爬虫程序的正常运行&#xff0c;其中最主要的一点就是反爬虫机制。为了防止爬虫程序在短时间内大量地请求同一个网站&#xff0c;网站管理者会使用一些方式进行限制。这时候&#xff0c;代理IP就是解决方…

成集云 | 金蝶云星空即时库存明细同步到多维表格 | 解决方案

源系统成集云目标系统 方案介绍 金蝶云星空是金蝶软件推出的新一代成长型企业SaaS管理软件&#xff0c;基于可组装低代码PaaS平台&#xff0c;构建了财务、供应链、采购管理、销售管理、生产管理、成本、税务、零售、电商、人力资源、协同办公等三十多个领域的一体化企业管理…

模型的保存加载、模型微调、GPU使用及Pytorch常见报错

序列化与反序列化 序列化就是说内存中的某一个对象保存到硬盘当中&#xff0c;以二进制序列的形式存储下来&#xff0c;这就是一个序列化的过程。 而反序列化&#xff0c;就是将硬盘中存储的二进制的数&#xff0c;反序列化到内存当中&#xff0c;得到一个相应的对象&#xff…

uniapp 处理 分页请求

我的需求是手机上一个动态滚动列表&#xff0c;下拉到底部时&#xff0c;触发分页数据请求 uniapp上处理分页解决方案 主要看你是如何写出滚动条的。我想到的目前有三种 &#xff08;1&#xff09;页面滚动&#xff1a;直接使用onReachBottom方法&#xff0c;可以监听到达底部…

文件读取漏洞复现(Metinfo 6.0.0)

文章目录 安装环境启动环境漏洞复现代码审计 安装环境 安装phpstudy&#xff0c;下载MetInfo 6.0.0版本软件&#xff0c;复制到phpstudy目录下的www目录中。 打开phpstudy&#xff0c;访问浏览器127.0.0.1/MetInfo6.0.0/install/index.php&#xff0c;打开Meinfo 6.0.0主页&a…

Vue+Element-ui实现表格本地导入

表格文件存储在前端 如图&#xff0c;表格文件template.xlsx存储在public下的static文件夹下 注意这里的路径容易报错 a链接下载文件失败的问题(未发现文件&#xff09; a.href ‘./static/template.xlsx’ 写的时候不能带public&#xff0c;直接这么写就可以 DownloadTemp…

leetcode每日一练-第53题-最大子数组和

一、思路 动态规划 二、解题方法 使用了两个变量 maxSum 和 currentSum 来分别记录全局的最大和和当前连续子数组的和。遍历数组时&#xff0c;我们不断更新 currentSum&#xff0c;并比较是否需要更新 maxSum。最后&#xff0c;maxSum 就是最大的连续子数组和。 三、code …

质量属性案例-架构真题(二十一)

试题一 某电子商务公司升级会员与促销管理系统&#xff0c;向用户提交个性化服务&#xff0c;提高用户粘性。在项目建立之初&#xff0c;公司领导人一致认为目标是提升会员管理方式的灵活性&#xff0c;由于当前用户规模不大&#xff0c;用户简单&#xff0c;系统方面不需要做…

【算法与数据结构】700、LeetCode二叉搜索树中的搜索

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;二叉搜索树的性质&#xff1a;左节点键值 < 中间节点键值 < 右节点键值。那么我们根据此性质&am…

seata1.4.2版本配置总结

文章目录 环境准备&#xff1a;seata-server配置registry.conf创建数据库表 nacos配置client配置seata_orderseata_storageseata_account 注意点 创建项目seata-order-service2001pom.xml文件application.yml 实体类CommonResultOrder DaoOrderDaoOrderMapper.xml config配置类…