背景:springboot项目开发完成后, 需要将项目部署到云服务器上, 环境(CentOS Linux release 8.2, mysql8.x, redis6.2.6, java8); 记录一下部署过程.
一.环境安装
I.安装mysql
1.使用ssh登录远程服务器, 查看mysql是否安装. 首先我们需要查看软件是否已经安装,或者说查看安装的软件包名称。如查找是否安装mysql
```
rpm -qa | grep mysql
```
2.如果运行上述命令没有返回信息, 则说明之前没有安装过; 如果有返回, 则先用以下命令卸载
```
rpm -e --nodeps mysql80-community-release-el8-3.noarch
```
3.下载mysql的repo源, 需要下载哪个版本可以根据系统版本决定,
mysql repo信息: https://dev.mysql.com/downloads/repo/yum/
```
wget http://repo.mysql.com/mysql80-community-release-el8-3.noarch.rpm
```
4.安装mysql源
```
rpm -ivh mysql80-community-release-el8-3.noarch.rpm
```
5.安装mysql
```
yum install mysql-server -y
```
6.重启服务
```
service mysqld restart
```
7.登录mysql数据库,并设置root用户登录密码. (第一次使用数据库登录的时候不用输入密码,因为还没有设置密码,直接回车进入数据库后再去修改密码.)
```
mysql -u root -p #输入密码时直接回车
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root12345'; #设置root用户登录密码为root12345
mysql> exit; #退出mysql
```
8.设置开机自启动
```
systemctl enable mysqld
systemctl daemon-reload
```
9.mysql的安装已经完成, 接下来需要将建表语句的sql文件拷贝到服务器上, 并完成建表
从本机拷贝sql文件到服务器端
```
scp ./mall_sql.sql root@x.x.x.x:/root #将建表语句从本机复制到服务器的root目录下
```
在服务器上连接mysql, 并执行sql文件
```
mysql -u root -p #使用root账户登录mysql
mysql> create database imooc_mall; #创建数据库
mysql> use imooc_mall; #使用数据库
mysql> source /root/mall_sql.sql; #在当前数据库中执行sql语句文件
```
至此, mysql的安装以及创建数据库, 建表等操作完成;
II.安装redis
1.在redis官网查看redis版本,选择合适的版本下载地址,并在服务器端下载
```
[root#] wget http://download.redis.io/releases/redis-6.2.6.tar.gz
```
2.将redis解压到/usr/local目录下
```
[root#] tar -zxvf redis-6.2.6.tar.gz -C /usr/local
```
3.进入/usr/local/redis-6.2.6目录中进行编译
```
cd /usr/local/redis-6.2.6
make
```
4.安装完成后, 需要进行2项配置
```
1.允许redis在后台运行, 使用vim编辑 redis-6.2.6/redis.conf配置文件, 将 daemonize no 改成 yes
2.设置redis开机自启动
vi /etc/rc.local
#在里面添加内容:
/usr/local/redis-6.2.6/src/redis-server /usr/local/redis-6.2.6/redis.conf #(意思就是开机调用这段开启redis的命令)
```
注意: make过程会报很多错误, 以下为碰到的错误和解决方法:
```
1. 报错 /bin/sh: cc: command not found
原因: 在linux系统上对redis源码进行编译时提示提示“make cc Command not found,make: *** [adlist.o] Error 127”。这是由于系统没有安装gcc环境,因此在进行编译时才会出现上面提示,当安装好gcc后再进行编译时,上面错误提示将消失。
解决: yum install gcc
2.报错 You need tcl 8.5 or newer in order to run the Redis test
解决: yum install tcl
3.报错类似这样 ../deps/hiredis/libhiredis.a: No such file or directory
../deps/lua/src/liblua.a: No such file or directory
../deps/jemalloc/lib/libjemalloc.a: No such file or directory
解决: 进入到指定路径后 运行 make 命令
cd /usr/local/redis-6.2.6/deps
make hiredis jemalloc linenoise lua
其中对于 jemalloc 可以按照以下命令执行:
cd /usr/local/redis-6.2.6/deps/jemalloc
./configure
make
```
III.安装java8环境
1.在本机手动下载jdk8, 并上传到服务器上
```
scp ./jdk-8u321-linux-x64.tar.gz root@106.x.x.x:/root # 将jdk复制到服务器的root目录下
```
2.将jdk解压到 /usr/local 目录
```
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /usr/local
```
3.配置java环境
使用vim编辑 /etc/profile文件
```
vim /etc/profile
# 将下面的配置添加到文件最后
#java env
export JAVA_HOME=/usr/local/jdk1.8.0_321
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
```
保存后, 让profile立即生效
```
source /etc/profile
```
----------以下步骤可能不需要-----
4.更新/usr/bin 下的java命令
```
ln -s /usr/local/jdk1.8.0_321/bin/java /usr/bin/java
```
5.可以用 java -version查看版本信息, 可能出现: /usr/bin/java: Permission denied
这是新jdk下的java命令没有权限,没有权限就给它权限就行了:sudo chmod -R 777 /usr/local/jdk1.8.0_321/bin
二.数据库准备,
mysql的安装已经完成, 接下来需要将建表语句的sql文件拷贝到服务器上, 并完成建表
1.从本机拷贝sql文件到服务器端
scp ./mall_sql.sql root@x.x.x.x:/root #将建表语句从本机复制到服务器的root目录下
2.在服务器上连接mysql, 并执行sql文件
mysql -u root -p #使用root账户登录mysql
mysql> create database imooc_mall; #创建数据库
mysql> use imooc_mall; #使用数据库
mysql> source /root/mall_sql.sql; #在当前数据库中执行sql语句文件
三.上传jar包,并运行
1.上传jar包
scp ./mall-0.0.1-SNAPSHOT.jar root@106.13.17.29:/root
2.运行jar包
java -jar mall-0.0.1-SNAPSHOT.jar
或者在后台运行
nohup java -jar XXX.jar &