最近自己弄了一个博客,前端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 修改用户权限 刷新权限 设置增删改查