【SpringBoot】阿里云ESC购买配置JDK、MySQL、SpringBoot项目部署

最近自己弄了一个博客,前端SemanticUI 后端SpringBoot+Mybatis,不管做得丑陋与否,还是想部署到公网上去玩一玩,于是乎就去阿里云嫖了一个月免费服务器练练手。记录一下也供大家参考。

前往阿里云官网:https://www.aliyun.com/
注册登录什么的就不用说了吧…

一、阿里云服务器购买

1、搜索云服务器ECS

在这里插入图片描述
在这里插入图片描述

2、选择自己想要的配置购买,也可以一键购买

在这里插入图片描述
远程连接密码(6位数字)、公网IP、服务器账号、服务器密码需要自己记住这些重要的信息

3、购买成功

再进首页,https://www.aliyun.com/点人头下面的控制台,可查看到刚刚购买的服务器信息。
在这里插入图片描述
在这里插入图片描述

4、开放端口

选择左边的网络与安全下的安全组,再点配置规则对服务器的安全组进行设置,这个安全组就类似于windows防火墙配置出站入站规则,这里安全组就相当于虚拟防火墙。
在这里插入图片描述
安全组中除了自带的规则,我们还需要添加几个新的安全组,意思就是外网能访问这些端口。我这里开放了tomcat、mysql、redis还有ftp常用端口(根据个人需要开放)
在这里插入图片描述
在这里插入图片描述

5、远程连接

回到“实例列表”,点击 实例ID 进入服务器,点击 ”远程连接“,输入6位连接密码,就可以看到我们申请的这个服务器了。
在这里插入图片描述
在这里插入图片描述
忘记远程连接密码,根据手机号修改就好了。
在这里插入图片描述
连接成功就可以进去了,这里不再演示,进去后输入服务器用户名(一般是root)和密码就可以玩了。

二、XShell6.0

由于网页版的远程连接一会儿没有操作就会自动休眠,有需要输入密码验证之类的,因此这里就不使用它了。

1、XShell连接阿里云服务器

本人使用XShell6.0学生版,学生版的可以自己申请,当然也可以在官网下载https://xshell.en.softonic.com/
新建一个会话,将服务器公网IP输入到主机栏,端口号设置为22(服务器的监听端口,ftp默认为21,sftp为22,如果设置22连不进去,那就换21试一下)
在这里插入图片描述
确定---->连接,输入服务器用户名(默认应该是root)和密码,如下图。
在这里插入图片描述
在这里插入图片描述
登录成功出现以下信息:
在这里插入图片描述
然后就开始安装项目所需的环境了,JDK1.8+Mysql5.7

2、阿里云服务器JDK安装

JDK下载一般在官网下载,不过很现在需要注册Oracle账号才能下,并且下载速度极慢。因此,我这里找到了国内整理资源的网站阿帕奇,下载速度飞快。
在这里插入图片描述
在这里插入图片描述
然后把这个文件上传到服务器上去就好了。在Xshell上执行rz命令就可以实现。首先我们要在云服务器上安装这个命令。在Xshell中执行:

apt-get install lrzsz
或者使用yum来安装也可以:yum install lrzsz

在这里插入图片描述
我们要把上传的文件放到哪个目录,就要先cd进入那个目录执行rz命令即可。为方便之后java环境变量设置,我们放在/usr/java目录下
在这里插入图片描述
传完了之后ls看一下是否有该压缩包。然后我们解压一下这个压缩包:

tar -zxvf jdk-8u202-linux-x64.tar.gz

然后就和在windows系统下安装完jdk一样,你还要设置系统环境变量。linux系统中的设置方法为:找到文件/etc/profile,向其中添加如下代码:

export JAVA_HOME=/usr/java/jdk1.8.0_202
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

在这里插入图片描述
vim进文件之后要进入编辑模式按o或者e,将java环境变量添加到末尾之后,按ESC输入:wq并退出。
查看文件是否保存成功。

cat profile

立即执行profile文件,使之生效,使用source命令(source命令:依次执行文件所有语句)

source /etc/profile

到这一步,jdk的安装就全部完成了。最后,我们再使用java命令验证一下,如果可以看到我们的版本信息就可以了。

java -version

在这里插入图片描述

三、阿里云服务器MySQL安装

1.apt换源(可选)

为避免使用yum安装出现一堆依赖问题,我这里采用apt-get安装。如果安装过程中apt-get没有镜像,则我们可以更新一下apt-get

sudo apt-get update

如果更新之后还没有,那么就可能是源的问题了,这里可以进行换源:换源之前如果你觉得不安全,可以先使用cp命令对自己的源文件进行备份:
cp命令是这样的:

cp   源文件所在目录   需要备份到的目录

如:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak     

apt的源文件在目录/etc/apt/sources.list

sudo vim /etc/apt/sources.list

在这里插入图片描述
为避免篇幅,这里就不贴出各种源了,可在文末进行参考更换。换好保存退出之后需要更新一下apt:

sudo apt-get update

2.安装MySQL

这里提供两种方式,因为Ubuntu下的apt-get和linux常用的yum。

apt-get安装方式

安装过程中有几处需要选择Y和OK。
2.1 安装MySQL服务端和客户端

sudo apt-get install mysql-server-5.7

2.2 安装依赖

sudo apt install libmysqlclient-dev

2.3 检查状态

sudo netstat -tap | grep mysql

2.4 进入root用户
可能在上面没有设置密码,因此这里需要进行密码修改

sudo su

进入mysql,在命令行依次输入以下命令:

mysql    进入mysql
show databases;  查看当前mysql的数据库
use mysql; 使用mysql数据库
show tables; 查看mysql数据库下的表
select user,plugin,authentication_string from user;  查看user表下的几个字段

然后我们修改root的plugin和密码:

update user set plugin = 'mysql_native_password' where user='root';
update user set authentication_string=PASSWORD('admin') where user='root';

完事儿后退出mysql命令行,exit
重启数据库服务:

sudo /etc/init.d/mysql restart

正常登录mysql

mysql -uroot -p
回车之后输入密码

关于一点mysql命令:

查看mysql状态  sudo service mysql status
启动mysql服务  sudo service mysql start
停止mysql服务 sudo service mysql stop
重启mysql服务 sudo service msyql restart
rpm -qa | grep -i mysql 查看是否安装mysql
rpm -ivh  xxx用rpm安装xxx  -i安装,-v显示详细信息,-h显示进度  --nodeps不检测依赖性
ps-ef | grep mysql:查看mysql安装目录
检测是否安装成功:mysqladmin --version
/usr/bin/mysqladmin -u root password 123456  //直接设置密码
chkconfig mysql on 设置mysql开启自启动  可用ntsysv命令查看开机器启动项有*就表示成功

linux下mysql目录解析:
在这里插入图片描述
安装mysql的图形化管理软件(可选)

sudo apt-get install mysql-workbench
yum安装方式

1、下载并安装MySQL官方的 Yum Repository

wget -i -c 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

2、MySQL数据库设置
启动mysql

systemctl start  mysqld.service

查看mysql运行状态

systemctl status mysqld.service

在这里插入图片描述
刚安装好的mysql一般都有临时密码,通过如下命令可以在日志文件中找出密码:

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

在这里插入图片描述
如果执行上述命令之后找不到临时密码,那么我们需要删除原来安装过的mysql残留的数据(必须),然后重启mysqld服务,再去找临时密码。

rm -rf /var/lib/mysql    #删除原来残留的数据
systemctl restart mysqld #重启mysqld服务
grep "password" /var/log/mysqld.log #再找临时密码

然后进入mysql修改密码:

mysql -uroot -p #回车之后输入上面的临时密码

输入初始密码,此时不能做任何事情因为MySQL默认必须修改密码之后才能操作数据库:但此时修改的密码必须要符合mysql初始密码设置规则,组成比较复杂,因此,修改一下这个规则,使得我们可以设置一些简单的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'z?guwrBhH7p>';  #先设置一个复杂的密码,然后修改规则
set global validate_password_policy=0;
set global validate_password_length=1;

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' #最后就可以自己设置一个简单的密码了

MySQL完整的初始密码规则可以通过如下命令查看:

SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述
这也是我们改变上面两个规则的原因了。

但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

yum -y remove mysql57-community-release-el7-10.noarch

考虑到MySQL5.7版本的GroupBy问题,因此我这里对mysql的配置文件进行了配置,windows下的my.ini配置文件在linux上叫my.cnf,位于/etc/my.cnf

首先可以先看一下mysql安装在哪儿

which mysql

其次查找配置文件位置,根据上面查找的目录,查看配置文件在哪里了(路径后面加上 --verbose --help|grep -A 1 'Default options'
比如:

/usr/bin/mysql --verbose --help|grep -A 1 'Default options'

服务器首先读取的是/etc/my.cnf文件,如果前一个文件不存在则继续读/etc/mysql/my.cnf文件,如果还不存在依次向后查找。

找到配置文件以后就可以根据需要修改配置文件。

vim /etc/my.cnf

我是直接将windows的配置复制进去的,供参考:

[mysqld]
# 解决groupBy问题
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 设置3306端口
port=3306
# 设置mysql的安装目录
#basedir=D:\\mysql-5.7.28-winx64
# 设置mysql数据库的数据的存放目录
#datadir=D:\\mysql-5.7.28-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

修改之后保存并退出重启MySQL生效

service mysqld restart
/etc/init.d/mysql restart  #使用脚本启动
数据库表导入

然后呢,我们本地项目的mysql数据表还是一堆恼火的事情,难不成还要一张张表去建么,小表还没什么,大表就要头痛了。于是考虑将本地的表导出,然后上传到服务器上自动建表:
我这里采用Navicat来进行导出sql文件。右击自己的数据库将sql文件转存:
在这里插入图片描述
在这里插入图片描述
接下来就是一样的利用rz命令上传自己的sql文件了。
上传完成之后就可以看到了:
在这里插入图片描述
然后进入mysql数据库中导入该文件。

mysql -uroot -p回车输入密码
create database [IF NOT EXISTS] <数据库名>;  //可以不判断创建也行,毕竟第一次创建
use 数据库

然后利用source命令导入即可

source /home/sql/user_blog.sql          //source  你的sql目录

四、SpringBoot项目打jar包

1、确保自己有以下打包环境

在这里插入图片描述
在这里插入图片描述

<packaging>jar</packaging>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2、打包上传服务器

打包完成,选择右边的maven–>package即可进行打包,打完包之后根据提示目录找到自己的jar包用rz命令上传到阿里云服务器上去即可。
在这里插入图片描述

3、端口检测清理

我们要想在linux系统上运行这个项目,就要保证他运行所用的端口没有被占用,不然运行就会报端口被占用的错。
查看端口使用情况

netstat -anp | grep 8800   //netstat -anp | grep <端口号>

在这里插入图片描述
可以看到这个端口被占用了(没被占用的时候不显示任何东西),查看占用端口的PID

sudo lsof -i:8800  //sudo lsof -i:<端口号>

在这里插入图片描述
我们要把它kill掉:

sudo kill -9 26191  //sudo kill -9 <PID>

在这里插入图片描述

4、运行项目

使用java指令运行项目jar包,这样我们的项目就算部署成功了。

java -jar ***.jar  //***为你的jar包名

这样SpringBoot项目就启动起来了,和本地是一样的测试,只不过这里将本地localhost换成了公网IP,至于项目上线的问题可以自己去测一下,还是和本地有些出入的。
需要注意的是,我们这里运行这个只是临时性的,什么意思呢,也就是依赖于这个xshell会话,如果这个会话挂了,那么你的服务也挂了,这显然不是我们想要的,于是乎,我们使用下面的方法让这个项目在服务器上自动不间断地跑。

5、sh脚本助力

在jar包所在目录,创建并编辑文件 start.sh,向其中添加命令:java -jar ***.jar保存并退出。

vim start.sh      //创建并编辑文件

保存好上面的sh脚本文件之后,执行下面两个指令,给这个start.sh管理员权限,然后用nohup指令不间断地运行(nohup指令:忽略所有挂断(SIGHUP)信号,不挂断地运行命令),最后运行sh脚本:sh start.sh

chmod 777 start.sh  //赋予管理员权限
nohup  ./start.sh &  //nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件,不间断运行文件内的指令。

在这里插入图片描述
然后你就可以进行项目访问了,当然,如果你只想在xshell连接时候才运行该项目,那么使用下面sh命令一次运行就够了,或者是使用原来的java -jar xxxjar命令即可。
在这里插入图片描述

查看端口使用:

netstat -anp | grep 8800

把Xshell关掉,在浏览器上输入http://公网IP:8800 发现项目还是可以进入,说明我们已经设置成功了。至此springboot项目部署到阿里云服务器上完结。

如果你项目运行中进行前端请求出现以下错误。
在这里插入图片描述
可能原因有两个,一是本身用户名和密码就没有对,二是当前分配的用户权限不够,需要修改权限。第一:检查你的项目中配置的Mysql用户名和密码对不对,这个就不在多说。第二,确认用户名和密码都是对的情况下,就是用户权限问题了,此时需要修改分配的用户远程连接权限。更改用户权限这里分两个版本的mysql,一个是mysql8以前的,一个是mysql8及以后。

Mysql8以前的使用下面命令设置远程连接权限:

grant all privileges on *.*  to 'your username'@'%' identified by 'your password';

MySQL8.0及之后的,设置远程连接权限要用下面的语句才可以,以root用户123456密码为例:

create user root@'%' identified by '123456';
grant all privileges on *.* to root@'%' with grant option;

最后刷新权限或者重启数据库服务:

flush privileges ;    //刷新权限
service mysqld restart //重启mysqld服务

如果执行修改远程连接权限命令出现下面问题的,就需要我们先修改密码规则,再执行修改远程连接权限命令。
在这里插入图片描述
执行下面两条命令更改密码规则。

set global validate_password_policy=0;
set global validate_password_length=1;

五、域名购买绑定

接下来就是域名购买配置了,去阿里云搜索并购买自己合适的域名:
在这里插入图片描述
在这里插入图片描述
买好了之后去控制台,找到域名即可操作了。
在这里插入图片描述
在这里插入图片描述
按照下面格式保存
在这里插入图片描述
然后我们就可以通过 www.域名.com:8800的方式访问我们的网站了
然后发现,现在还需要带端口号才能访问,这个就牵扯到备案的问题了,阿里云的客服告诉我,需要购买3个月后的服务器才具备备案资格,备案审核成功后我们才能通过 www.域名.com访问网站。
在这里插入图片描述
apt国内源

阿里源:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

中科大源:
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

163源:
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

使用方法:
1. cd /etc/apt
2. cp sources.list  sources.list.bak, 备份原来的自带的源
3. sudo vi  /etc/apt/sources.list, 将上面的源挑选一个黏贴进文本,保存
4. sudo apt-get update

参考链接:
1、SpringBoot项目部署到阿里云服务器全流程(简直详细到啰嗦)
2、Ubuntu18.04下MySQL5.7的安装
3、ubuntu下导入导出表 mysql
4、MySQL安装之yum安装
5、mysql 修改用户权限 刷新权限 设置增删改查

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值