1

将SpringBoot项目部署到云服务器上

 2 years ago
source link: https://blog.csdn.net/weixin_56727438/article/details/122724392
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

📒博客首页崇尚学技术的科班人
小肖来了🏇
🍣今天给大家带来的文章是《将SpringBoot项目部署到云服务器上》🍣
🍣希望各位小伙伴们能够耐心的读完这篇文章🍣
🙏博主也在学习阶段,如若发现问题,请告知,非常感谢🙏
💗同时也非常感谢各位小伙伴们的支持💗

1、购买云服务器

在这里插入图片描述

我买的是1核2G的轻量级应用服务器,对于一个个人博客。该服务器的性能绰绰有余了。同时我这个也是新人专享的。所以说38元一年还是十分的便宜的。当然了,阿里云的服务器会稍微贵一点点。

2、使用远程工具连接服务器

1. 打开腾讯云控制台

在这里插入图片描述

2. 搜索轻量应用服务器

在这里插入图片描述


在这里插入图片描述

  • 这样我们就找到了我们所购买的控制实例了。接下来我们需要对控制实例进行相关的操作。

3. 重置root用户密码

  • 如果我们要使用Xshell 7来连接该远程的Linux服务器的话,我们需要对该服务器的密码进行重置。这样我们才能进行连接。

在这里插入图片描述

  • 如图所示,重置密码的位置显而易见。还有就是右边的地方就是我们所购买的服务器的IP访问地址。

4. 使用Xshell 7 连接服务器

在这里插入图片描述

  • 在标红处填入你所要连接的服务器IP地址。然后需要输入你的root的账户和密码进行连接。
  • 我们使用远程工具进行连接的目的是为了更好的操作我们所购买的服务器,因为他们官方所提供的黑窗口不太好使用。

3、安装JDK

  • yum安装

Linux上使用yum命令后,会将OpenJDK安装到/usr/lib/jvm/目录下。

# 安装OpenJDK
yum install java-1.8.0-openjdk java-1.8.0openjdk-devel
  • 配置jdk环境变量
# 打开配置文件
vim /etc/profile

进入文本编辑状态下,光标走到文件最后一行末尾(shift+g 快速定位到文件的最下方),键盘按下:i(英文状态)
插入下面四行语句

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0.171
export JRE_HOME=/$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

:wq保存退出。

  • 让环境变量生效
source /etc/profile
  • 检查JDK是否安装成功
java -version

可以看到jdk版本信息,安装成功

openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

4、MySQL5.7安装

  • rpm下载MySQL
#下载MySQL安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
 
#安装yum源
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
 
#安装MySQL数据库
yum -y --nogpgcheck install mysql-community-server
  • 启动MySQL
#启动MySQL服务
systemctl start mysqld 
 
#查看MySQL启动状态
systemctl status mysqld
 
#设置开机启动
systemctl enable mysqld
systemctl daemon-reload
  • 登录重置密码

MySQL安装完成后,在/var/log/mysqld.log文件中给root生成了一个默认密码,可以通过命令查看密码:

grep "temporary password" /var/log/mysqld.log

然后可以使用这个密码登陆MySQL

mysql -uroot -p

回车输入密码登陆数据库,第一次登陆需要重置密码,以下命令重置:

ALTER user 'root'@'localhost' identified by '123456Aa.';

这里更改数据库密码的时候我们需要注意的是它系统要求的是我们需要设置的密码要包含数字、大小写字母和特殊符号。但是我们这里设置的时候我们尽量不要将特殊符号放置前面,因为博主吃了这样的亏,捣鼓了很久才发现并解决。

到这里我们的数据库就安装完成了。

  • 数据库配置

数据库配置是通过/etc/my.cnf文件进行配置,这里配置一下字符集为utf8mb4,打开my.cnf文件:vim /etc/my.cnf ,在文件末尾添加:

# 设置数据库字符集为utf8mb4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
 
init_connect = 'SET NAMES utf8mb4'
 
lower_case_table_names = 1 # 表名不区分大小写

修改完成后,重启MySQL服务:

# 重启MySQL
systemctl restart mysqld

通过配置my.cnf可以对数据库进行配置,有一些基本的配置。

  • 数据库授权

为了方便对数据库进行操作,一般都是使用可视化软件对数据库进行远程连接,但如果任何一台机子都可以对你的服务器数据库进行远程连接,那就不安全了,这里就需要对数据库进行授权,指定可以远程连接的数据库,没有授权就只能支持localhost本地访问了。

# 登陆数据库
mysql -uroot -p
 
# 使用数据库
use mysql;
 
# 设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456Aa.' WITH GRANT OPTION;
 
# 刷新权限
flush privileges;
 
#退出,重启服务器
service mysqld restart

5、项目部署

1. 检查项目是否能正常运行

  • 将项目部署到云服务器上之前,我们需要先对项目各项功能进行检测,查看一下各项功能是否正常。

2. 将项目打包成jar包

在这里插入图片描述

先进行clean再进行package。然后再/home路径下创建myblog目录,再将我们打包成的jar包放置/home/myblog下,如图所示:

在这里插入图片描述

3. 关闭防火墙

# 查看防火墙状态
systemctl status firewalld
 
# 打开防火墙
systemctl start firewalld
 
# 关闭防火墙
systemctl stop firewalld

4. 运行jar包

# 进入jar包文件夹
cd /home/myblog
 
# 后台运行jar包
nohup java -jar myblog-0.0.1-SNAPSHOT.jar &
# 输入上述运行命令之后,它将在服务器上一直运行,只要我们的服务器没有关闭,它就会一直运行。

5. 访问

在这里插入图片描述

6、部署过程中踩过的坑

6.1、下载MySQL遇到的坑

Public key for mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm is not installed

解决方法

安装的时候带上参数--nogpgcheck

#安装MySQL数据库
yum -y --nogpgcheck install mysql-community-server

6.2、设置数据库密码时遇到的坑

  • 由于我将特殊字符放置数据库密码的首个,所以导致了一直就是运行报错。

解决方法

将特殊字符放置密码的最后,样例:123456Aa.

6.3、进行URL访问的时候遇到的坑

当我访问相应的页面的时候就报了javax.net.ssl.SSLHandshakeException: No appropriate protocol

解决方法

找到Java安装目录下D:\Java\jdk1.8.0_291\jre\lib\security中的java.security文件,将SSLv3后面有两个和它后缀一样的算法,将它们一起删掉后重启服务器和项目,成功解决问题。

在这里插入图片描述

6.4、进行数据库查询的时候遇到的坑

当我访问首页的时候,由于它涉及到了数据库操作,控制台报出了Cause:org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection;

解决方法

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.24</version>
        </dependency>
  • 给数据库连接器进行版本下降。

6.5、操作数据库Bit类型字段时遇到的坑

  • 当进行数据库该字段的查询的时候,会发现无法显示该字段的值。我部署该项目时遇到了这种情况。导致了个人博客中的某些字段无法查询出来,从而导致了页面的内容部分残缺。

解决方法

  • 我将数据库中Bit类型的字段修改为INT(11)类型的字段,这样启动后发现,相关的部分的内容可以正常显示了。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK