Linux云服务部署Spring boot项目
背景:
之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章。
简单介绍一下博客内容:
- 仿照小而美搭建的,前端模板也采用小而美实现。
- 技术点:springBoot+thymeleaf+mysql+Mybatis-plus(混合xml实现的)
该博客不会维护,作用是梳理前面的学习过的知识,增加记忆点。
话不多说,开始吧!
环境搭建:
为了不让项目产生版本兼容问题,统一使用的项目的版本安装。
包名 | 版本号 |
---|---|
maven | 3.6.3 |
jdk | 9 |
mysql | 最新版本(有坑) |
所需要的工具:
- Xshell(Linux连接)
- Xftp(文件传输)
- navicat(数据库连接)
- Linux(云服务器) 新用户9块一个月。
这里就没有用云mysql.
部署过程:
项目打包:
- clear
- package
打包成功的样例:
上传到云服务器:
可以界面化上传的软件很多,自行选择。(个人:Xftp软件)
看图说话,如果之前有朋友部署过,应该很清楚,接下来解释下:
我分了两个包:
- javapro 放置jdk和系统的文件
- mvn 放置maven安装包
可以随时修改配置文件,使得项目生效。
解压命令:
tar -zxvf 包名
配置jdk以及maven环境:
进入jdk文件夹:
cd jdk-9.0.4/
root@iZuf67gh3nsadi0q4sg7ulZ:~/javapro/jdk-9.0.4# pwd
/root/javapro/jdk-9.0.4
同操作:
cd apache-maven-3.6.3/
root@iZuf67gh3nsadi0q4sg7ulZ:~/mvn/apache-maven-3.6.3# pwd
/root/mvn/apache-maven-3.6.3
记住当前路径,输入:
vi /etc/profile
如下:
export JAVA_HOME=/root/javapro/jdk-9.0.4 ## 后面是目录的路径和软件链接 ,根据实际情况来写
export PATH=.:$JAVA_HOME/bin:$PATH
#mvn
export PATH=$PATH:/root/mvn/apache-maven-3.6.3/bin
仿照上面格式,填入自己的路径。
退出后,加载一下:
source /etc/profile
最后验证:
java -version
mvn -version
如下:
mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /root/mvn/apache-maven-3.6.3
Java version: 9.0.4, vendor: Oracle Corporation, runtime: /root/javapro/jdk-9.0.4
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-47-generic", arch: "amd64", family: "unix"
--------------------------------------------------------------------------------
java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
root@iZuf67gh3nsadi0q4sg7ulZ:~/mvn/apache-maven-3.6.3#
安装MySQL实现远程访问:
之前MySQL的安装其实也写过,但是没想到折磨也在这里折磨的。
首先在线安装mysql,自己使用官网的安装包,下载到linux中解压报错,原来以为是包下错了,但是在网上找到的教程,还是没有解决,所以实现在线安装的。
如果有知道我这种错误的朋友,可以评论交流下。
这是我之前的写的在线安装的文章:链接
这里针对文章中的做一个补充和修改,该文章在MySQL安装上没什么问题,只是在权限认证上需要补充一下:
- 之前一直用mysql5版本进行远程授权登录,但是换mysql8.0原来的授权方式报错
- 版本5可以使用原来的文章进行配置,但是MySQL8不行,不能授权给自己了。
MySQL8权限验证解决方式:新增一个用户,远程连接到该用户上。
<br>mysql> create user 'xbhog'@'%' identified by 'xbhog';
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql>
mysql> GRANT ALL PRIVILEGES ON *.* TO 'xbhog'@'%';
Query OK, 0 rows affected (0.04 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'xbhog'@'%' IDENTIFIED WITH mysql_native_password BY '对应自己的密码';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
使用Navicat连接需要更改下加密方式:
如果用Navicat连接的回报不支持caching_sha2_password验证方式的错误。
将远程访问用户的验证方式改为: msyql_native_password
执行:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
启动项目:
java -jar jar包名(Blog-0.0.1-SNAPSHOT.jar)
后台运行:
nohup java -jar jar包名(Blog-0.0.1-SNAPSHOT.jar)
参考:
结束:
如果你看到这里或者正好对你有所帮助,希望能点个