适用于: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 -version
openjdk 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.jar
和 java -jar packageName.jar
是两种在Unix和Linux系统中运行Java应用程序的方式,它们之间有一些重要的区别:
-
后台运行:
nohup java -jar packageName.jar
:nohup
命令用于在后台运行进程,并且不会受到终端关闭或断开连接的影响。这意味着当你关闭终端或注销时,Java应用程序仍然在运行。java -jar packageName.jar
:这只是在当前终端会话中启动Java应用程序,如果你关闭终端,应用程序也会终止。
-
输出重定向:
nohup java -jar packageName.jar
:nohup
默认将标准输出重定向到一个名为nohup.out
的文件,这是为了捕获应用程序的输出,以便后续查看。你也可以使用> somefile.log
来自定义输出文件。java -jar packageName.jar
:标准输出通常会在终端中显示,除非你手动重定向它,例如,java -jar packageName.jar > output.log
。
-
退出会话的影响:
nohup java -jar packageName.jar
:这种方式可以在终端会话退出后继续运行,因此适合长时间运行的任务或后台服务。java -jar packageName.jar
:如果从终端启动应用程序,它将在终端会话退出时一同终止。
这时候Spring Boot后端项目部署就大功告成了!