前言:本文解决的问题是已经将项目写好,该如何利用工具将其部署到阿里云服务器,所针对的项目类型为前后端不分离的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即可进行打包
打包好后在target文件夹下可以看到一个jar文件,这个文件便是我们打包好的项目
打包数据库文件
因为项目的后台数据都在mysql数据库,因此要想项目正常启动还需要将这些数据打包成sql文件。
数据库管理软件我是用Navicate,如果使用的是其他软件,请自行百度,都大同小异
部署云服务环境
连接到云服务器
开放21和22端口
连接服务器
这里我是用的是Xshell和Xftp,其他软件也可以
安装宝塔面板及相应软件
输入以下命令;
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
进入外网面板地址,根据上图提供的账号密码登录,然后出现软件下载页面,这里必须要有的是mysql,如果你的项目用到了其他软件,请自行选择下载
安装Tomcat,实际上使用jar包部署项目不需要用到Tomcat,但宝塔面板在安装Tomcat时会顺便把jdk1.8装上,就省去了手动安装jdk1.8
修改数据库密码
环境检查
mysql以及jdk1.8
项目部署
将打包好的jar包上传至服务器
创建存放项目的文件夹
cd /home
mkdir blog
cd blog
上传文件
配置数据库
使用Navicate连接mysql
如果此处报错:1130-host ... is not allowed to connect to this MySql server,请至文末查看解决办法
导入刚才导出的sql文件
新建一个数据库,数据库名与之前的数据库名相同
将之前导出的sql文件拖拽至刚刚创建的数据库,导入数据即可。
运行项目
先进入之前存放jar文件的文件夹,再启动jar文件
cd /home/blog
java -jar jar文件名
在浏览器地址栏输入主机名即可访问该项目:
大功告成!!!
采坑记录
Failed to configure a DataSource
打包好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的时候要在语句完成后加上" ; "下面是图示说明
遇到这个问题首先到mysql所在的服务器上用连接进行处理
连接服务器: mysql -u root -p
查看当前所有数据库:show databases;
进入mysql数据库:use mysql;
查看mysql数据库中所有的表:show tables;
查看user表中的数据:select Host, User,Password from user;
修改user表中的Host:update user set Host='%' where User='root';
最后刷新一下:flush privileges;
重新在Navicate中测试一下: