将SpringBoot项目部署到阿里云服务器
前言:本文解决的问题是已经将项目写好,该如何利用工具将其部署到阿里云服务器,所针对的项目类型为前后端不分离的SpringBoot项目
服务器:阿里云服务器
操作系统:centos7
数据库:mysql8
java环境:jdk1.8
项目管理工具及编译器:maven Idea
其他:宝塔面板 Navicate
打包项目
设置打包方式
有两种打包方式,即jar包和war包,本次操作选用的是jar包方式。
打开pom.xml,在project标签内输入<packaging>jar</packaging>
,表示将项目打包成jar包
在plugins便签内输入下面的内容,使用maven打包
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
打包
点击package即可进行打包
image-20200817090339622 image-20200817090443329打包好后在target文件夹下可以看到一个jar文件,这个文件便是我们打包好的项目
image-20200817114016026打包数据库文件
因为项目的后台数据都在mysql数据库,因此要想项目正常启动还需要将这些数据打包成sql文件。
数据库管理软件我是用Navicate,如果使用的是其他软件,请自行百度,都大同小异
image-20200817111113618 image-20200817111142004部署云服务环境
连接到云服务器
开放21和22端口
image-20200817093704982 image-20200817093047850 image-20200817161310160连接服务器
这里我是用的是Xshell和Xftp,其他软件也可以
image-20200817094019066 image-20200817095215385 image-20200817095324769 image-20200817095341807 image-20200817095455924安装宝塔面板及相应软件
输入以下命令;
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
image-20200817104438115
进入外网面板地址,根据上图提供的账号密码登录,然后出现软件下载页面,这里必须要有的是mysql,如果你的项目用到了其他软件,请自行选择下载
image-20200817104743206安装Tomcat,实际上使用jar包部署项目不需要用到Tomcat,但宝塔面板在安装Tomcat时会顺便把jdk1.8装上,就省去了手动安装jdk1.8
image-20200817105632497修改数据库密码
image-20200817110228037环境检查
mysql以及jdk1.8
image-20200817110533875项目部署
将打包好的jar包上传至服务器
创建存放项目的文件夹
cd /home
mkdir blog
cd blog
上传文件
image-20200817151051905配置数据库
使用Navicate连接mysql
image-20200817151309907 image-20200817151409340如果此处报错:1130-host ... is not allowed to connect to this MySql server,请至文末查看解决办法
导入刚才导出的sql文件
新建一个数据库,数据库名与之前的数据库名相同
image-20200817151752026将之前导出的sql文件拖拽至刚刚创建的数据库,导入数据即可。
运行项目
先进入之前存放jar文件的文件夹,再启动jar文件
cd /home/blog
java -jar jar文件名
在浏览器地址栏输入主机名即可访问该项目:
image-20200817154716636大功告成!!!
采坑记录
Failed to configure a DataSource
image-20200817114125816打包好jar包后有两个文件,一个jar文件,一个original文件,我只上传了jar文件。。。。
80端口被占用
我的springboot项目使用的是80端口,但centos7的80端口已经被其他程序占用
解决:
netstat -tln | grep 80 //查看被占用端口
lsof -i:80 //查看被占用端口的PID
kill -9 80 //关闭该进程
mysql报错:1130-host ... is not allowed to connect to this MySql server
该方法转自于:http://www.cnblogs.com/Bighua/p/7629082.html
这个问题是因为在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户),下面将记录我遇到问题的过程及解决的方法。
在搭建完LNMP环境后用Navicate连接出错
遇到这个问题首先到mysql所在的服务器上用连接进行处理
1、连接服务器: mysql -u root -p
2、看当前所有数据库:show databases;
3、进入mysql数据库:use mysql;
4、查看mysql数据库中所有的表:show tables;
5、查看user表中的数据:select Host, User,Password from user;
6、修改user表中的Host:update user set Host='%' where User='root';
7、最后刷新一下:flush privileges;
一定要记得在写sql的时候要在语句完成后加上" ; "下面是图示说明
img遇到这个问题首先到mysql所在的服务器上用连接进行处理
连接服务器: mysql -u root -p
img查看当前所有数据库:show databases;
img进入mysql数据库:use mysql;
img查看mysql数据库中所有的表:show tables;
img查看user表中的数据:select Host, User,Password from user;
img修改user表中的Host:update user set Host='%' where User='root';
img最后刷新一下:flush privileges;
img重新在Navicate中测试一下:
img