广告
返回顶部
首页 > 资讯 > 服务器 >spring boot项目部署到ubuntu服务器详细教程
  • 874
分享到

spring boot项目部署到ubuntu服务器详细教程

springbootintellij-ideaubuntu后端服务器 2023-09-09 10:09:08 874人浏览 安东尼
摘要

1.准备 idea; 开发好的SpringBoot项目; ubuntu服务器; 2.将项目打包,利用IDEA的打包功能,这里以jar文件为例 springBoot官方推荐打成jar包,服务器上有jdk 1.8以上环境就可以直接运行; 首先在

1.准备

idea;

开发好的SpringBoot项目

ubuntu服务器

2.将项目打包,利用IDEA的打包功能,这里以jar文件为例

springBoot官方推荐打成jar包,服务器上有jdk 1.8以上环境就可以直接运行;

首先在pom.xml文件里面添加:

点击右侧的Maven,如果右侧没有的话鼠标放在IDEA左下角进行添加,然后package;

      

 可以看到,打包完成后的jar文件放在了target目录里面;

 2.将打包好的jar文件上传到Ubuntu服务器

 3.如果Ubuntu上安装jdk,这里以jdk1.8为例

打卡终端,输入java会提示我们各个版本的安装方法,我们要装jdk1.8版本所以进行下面的操作;

apt install openjdk-8-jre-headless

 等待安装完成后查看版本;

java -version

4.安装Mysql

由于我的项目要导入的数据库中有rank表格,而rank是mysql版本8.0.2中定义的Mysql保留字。因此,不能将rank用作列名和表名;

故我们选择更为稳定的mysql5.7版本,本文以5.7.31为例;

但是Ubuntu中全自动安装MySQL默认安装最高版本,想要安装5.7版本就需要去官网手动下载安装包解压安装,比较麻烦,所以我们可以在Docker中安装mysql;

安装docker,可以使用官方安装脚本自动安装;

 curl -fsSL https://test.docker.com -o test-docker.sh sudo sh test-docker.sh

卸载docker;

sudo apt-get purge docker-ce#删除安装包sudo rm -rf /var/lib/docker#删除镜像、容器、配置文件等内容

在docker中安装mysql;

拉取指定5.7.31版本mysql的镜像;

sudo docker pull mysql:5.7.31

查看是否已经拉取到镜像;

docker images

 镜像拉取完成后,用该镜像创建mysql实例,使用下面的命令来创建;

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \-v /usr/local/mysql/log:/var/log/mysql \-v /usr/local/mysql/data:/var/lib/mysql \-v /usr/local/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWord=Chen -d mysql:5.7.31#-p 3306:3306:指定宿主机端口与容器端口映射关系#--name mysql:创建的容器名称#--restart=always:总是跟随docker启动#--privileged=true:获取宿主机root权限#-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器#-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器#-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器#-e MYSQL_ROOT_PASSWORD=Chen:指定mysql环境变量,root用户的密码为Chen#-d mysql:latest:后台运行mysql容器,版本是5.7.31。

通过docker ps查看所有正在运行的容器,docker ps -a是查看所有容器,没在运行的也能看到;

现在我们将sql脚本文件拷贝到mysql容器内部的home下的temp文件内,不然的话在容器内读取不到sql脚本;

sudo docker cp /home/chen/exam_system.sql 57d6500d91df:/home/#其中57d6500d91df是MySQL容器的id

 进入容器;

docker exec -it mysql /bin/bash

登录mysql;

mysql -u root -pChen

创建数据库

create database exam_system;

查看所有数据库;

show databases; 

可以看到刚刚创建的数据库已经有了,切换到对应的数据库下;

use exam_system;

运行如下命令执行存放在mysql容器内的SQL文件;

source /home/exam_system.sql;

查看数据库中的表格;

show tables;

数据库中的表格均导入完成; 

退出数据库;退出容器;

exit;exit

5.安装Redis

使用命令进行安装;

sudo apt-get install redis-server

6.运行jar包

 在Ubuntu中打开jar包编辑/BOOT-INF/classes/内的配置文件application.yml修改数据库配置;

因为我们使用的是docker中的数据库注意url中的localhost改为docker的地址,此处为172.17.0.1;

接着可以直接java -jar exam-admin-0.0.1-SNAPSHOT.jar运行;

此时访问我们设置的端口就能访问到了;

但是上述方法在命令窗口关闭时,服务进程就被杀死了,即服务不存在;

如果想要在关闭窗口后服务仍在后台运行,可以nohup;

nohup java -jar exam-admin-0.0.1-SNAPSHOT.jar >temp.txt 2>&1&#nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行#这种方法会把日志文件输入到你指定的文件中(temp.txt)#在哪个目录下运行的该日志文件就会在哪个目录下,没有指定具体文件则会自动创建(nohup.out)#& 表示后台运行

运行过程中出现的问题可以在temp.txt文件中查看;

前面我们提到更改数据库的配置文件,如果修改后在运行过程中依然出现报错:SpringBoot SpringCloud项目启动mysql报错Access denied for user ‘root‘@‘172.17.0.1‘ (using password: YES)

那么我们需要进入mysql,配置mysql允许远程连接;

mysql -uroot -pChen#登陆mysql,输入密码grant all privileges on *.* to 'root'@'%' identified by 'Chen' with grant option;#开启root用户远程访问权限,登录名为root 密码为Chen(注意用户密码都需要单引号)flush privileges;#刷新权限

运行成功后,输入jobs会列出在后台执行的作业;

 查看某端口占用的线程的pid;

netstat -NLP |grep :8888

关闭进程;

kill pid

来源地址:https://blog.csdn.net/weixin_44086476/article/details/129974531

--结束END--

本文标题: spring boot项目部署到ubuntu服务器详细教程

本文链接: https://www.lsjlt.com/news/401315.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作