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

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;

1.安装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
#删除镜像、容器、配置文件等内容

2.在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

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要将Spring Boot项目部署Ubuntu上,您可以按照以下步骤进行操作: 1. 首先,将您的Spring Boot项目打包成一个可执行的jar文件。在Ubuntu中,您可以使用命令行运行`mvn package`或者使用IDE(如IntelliJ IDEA)的打包功能来完成这一步骤。 2. 将打包后的jar文件上传到Ubuntu服务器上。您可以使用FTP工具,如FileZilla,通过SFTP协议将文件上传到服务器上。根据您提供的引用,您可以使用FailZip工具来发送文件到Ubuntu虚拟机。 3. 在Ubuntu服务器上安装Java运行环境和Tomcat服务器。您可以使用命令行运行以下命令来安装OpenJDK和Tomcat: ``` sudo apt update sudo apt install default-jdk sudo apt install tomcat9 ``` 4. 编辑Tomcat的配置文件,以配置您的Spring Boot项目。打开`/etc/tomcat9/server.xml`文件,找到`<Host>`标签,并添加以下内容: ``` <Context path="/" docBase="/path/to/your/jar/file.jar" /> ``` 将`/path/to/your/jar/file.jar`替换为您上传到服务器的jar文件的实际路径。 5. 重启Tomcat服务,以使配置生效。使用以下命令重启Tomcat: ``` sudo service tomcat9 restart ``` 6. 现在,您的Spring Boot项目应该已经成功部署Ubuntu服务器上了。您可以通过在浏览器中输入服务器的IP地址和Tomcat端口号来访问您的应用程序。 请注意,以上步骤仅适用于将Spring Boot项目部署到Tomcat服务器上。如果您希望使用其他服务器(如Nginx),则需要相应地进行配置。 引用: - [1]: 在Ubuntu中打开jar包编辑/BOOT-INF/classes/内的配置文件application.yml修改数据库配置 - [2]: 文章目录JavaWeb项目部署到阿里云服务器1. 把项目打包成war包1.1 方法一1.2 方法二2. 配置服务器的jdk和tomcat环境3. JavaWeb项目部署JavaWeb项目部署到阿里云服务器 服务器:阿里云服务器 Ubuntu 18.04 64位... - [3]: 我使用的putty来连接虚拟机,虚拟机是Ubuntu的,使用的是FailZip来向虚拟机发送文件的<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [spring boot项目部署ubuntu服务器详细教程](https://blog.csdn.net/weixin_44086476/article/details/129974531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [将JavaWeb项目war包部署到阿里云服务器](https://download.csdn.net/download/weixin_38723683/14052421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [在Ubuntu部署Springboot项目](https://blog.csdn.net/qq_25447799/article/details/122481813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值