(vue+springboot+mysql)部署到服务器上过程

前言:

首先:该项目是一个前后端分离的项目。
前端------Vue、vue-cli、element等技术,
后端------springboot+mybatis,
数据库------mysql-5.6.51(服务器上的版本),因为服务器上的mysql版本比较旧,开发的时候用的8.0.17的,从高版本到低版本会出现一些sql语句结构的冲突。

0.服务器的准备

1.本项目服务器是华为弹性云服务器ECS,配置信息:
在这里插入图片描述
2.采用的安全组sg-test-lcc
在这里插入图片描述
服务器准备好了,往下继续。

1.前端排查打包。

1.1 打开vscode前端,查看所有前端的请求端口,并且修改:

在这里插入图片描述

1.2 打包前端到后端IDEA中。

在config目录index.js是vue项目配置启动文件,能看到对应的运行模式dev和打包build。
在这里插入图片描述
在这里插入图片描述

话不多说,开始打包:
1️⃣打开项目src下的控制台:
在这里插入图片描述
2️⃣运行项目打包
在这里插入图片描述
3️⃣打包完成后会出现一个根据你build中自定义的路径出现的文件。
在这里插入图片描述
4️⃣将dist内的文件整一个放入IDEA项目中的static下
在这里插入图片描述

2.后端排查打包

2.1 配置sql请求的域名

spring:
  #数据库连接
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://120.46.156.84:3306/db_coal?characterEncoding=utf-8
    username: root
    password: root
  #mybatis的相关配置,请特别注意层级,空格会引发血案!
  servlet:
    multipart:
      max-file-size: 10MB
mybatis:
  #开启驼峰命名
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations: classpath:mapper/*.xml
server:
  port: 8088

2.2 打包项目,生成jar包。

为了避免缓存问题,把项目clean,完事package
在这里插入图片描述
完事后就会生成对应的target目录,里面有相关的文件和jar包(这个jar包我改过名,name不一样不要介意)。
在这里插入图片描述

!!!主角:服务器mysql的配置。

1️⃣用ssh工具连接服务器,或者本地cmd输入指令

本地cmd:(失败

C:\Users\PJX>ssh 120.46.156.84
The authenticity of host ‘120.46.156.84 (120.46.156.84)’ can’t be established.
ECDSA key fingerprint is SHA256:4oSHC9jNbWAf5BSKsVu1JdkS95S5/nAg3yOFxT6Q8BM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘120.46.156.84’ (ECDSA) to the list of known hosts.

啊?这里本地出问题了,不知道为啥。我们因为后期还要上传数据,就不用本地cmd连接了。

xshell工具连接:(成功

[C:~]$ ssh 120.46.156.84
然后填入自己的相关信息。连接成功:
[root@coal-pjx ~]#

2️⃣ 安装mysql

因为yum上的mysql资源有问题,需要先获取相对应的资源再yum安装

获取并挂载社区版mysql

cd /tmp
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql mysql-server mysql-devel -y --nogpgcheck
等待下载安装完就好了。若嫌弃这个版本太低了,那就自己去mysql社区找到对应的下载地址。先wget下载,然后tar解压就行
mysql社区链接
或者去mysql源先wget挂载一个资源进来,跟上面一样yum
mysql源

展示一下吧:
有时间借鉴一下这个错误:https://stackoverflow.com/questions/59993633/yum-dnf-error-failed-to-download-metadata-for-repo/60151238
mysql社区版(待成品):这里展示展示失败了,用上面那个吧,果然yum上的mysql资源不太行。

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

可以看到对应的下载链接
[root@coal-pjx tmp]# wget https://dev.mysql.com/get/mysql80-community-release-fc34-1.noarch.rpm
在这里插入图片描述
[root@coal-pjx tmp]# rpm -ivh mysql80-community-release-fc34-1.noarch.rpm
在这里插入图片描述
这里出现了错误信息,查看发现是什么头什么V3啥的签名错误。罢工了,百度瞅瞅。
百度后说是yum安装了旧版本的GPG keys造成的解决地址
[root@coal-pjx tmp]# rpm -ivh mysql80-community-release-fc34-1.noarch.rpm --force --nodeps
在这里插入图片描述接着就安装吧
[root@coal-pjx tmp]# yum install mysql mysql-server mysql-devel -y --nogpgcheck
在这里插入图片描述啥玩意啊??刚下了点皮毛就不给下了。这里暂时罢工了,暂时摸索不到原因,到时候看到了回来更新。
垃圾箱警告!
[root@coal-pjx tmp]# rm -rf mysql80-community-release-fc34-1.noarch.rpm

mysql源:(这个也G了)

找到最新的,然后获取地址
在这里插入图片描述
开始操作:
[root@coal-pjx tmp]# wget http://repo.mysql.com/mysql80-community-release-fc33.rpm
在这里插入图片描述
[root@coal-pjx tmp]# rpm -ivh mysql80-community-release-fc33.rpm --force --nodeps
在这里插入图片描述
[root@coal-pjx tmp]# yum install mysql mysql-server mysql-devel -y --nogpgcheck
在这里插入图片描述
两个地址的资源都没法下最新的,有缘江湖再见。

可以探究一下换个yum源参考链接

3️⃣进行配置。

启动mysql

[root@coal-pjx tmp]# systemctl start mysql.service

验证是否运行

[root@coal-pjx tmp]# netstat -anp|grep 3306

创建密码登陆

[root@coal-pjx tmp]# mysqladmin -u root password 123
[root@coal-pjx tmp]# mysql -uroot -p123
在这里插入图片描述

大小写敏感(mybatis设置驼峰了,没必要看了)

Linux MySQL默认是大小写敏感的,项目是在windows上开发的,而windows上的Mysql默认是非大小写敏感的,所以JDBC代码有的表名是大写,有的是小写的,一旦运行起来就会因为大小写不一致导致无法识别表名。 为了解决这个矛盾,就需要把MySQL的大小写敏感修改为非敏感。

  1. 打开mysql配置文件
    vi /etc/my.cnf
  2. 如图所示在[mysqld]后添加添加
    lower_case_table_names=1
    在这里插入图片描述
  3. 重启mysql
    systemctl restart mysqld.service

创建数据库

mysql -uroot -proot
CREATE DATABASE db_coal;
show databases;

导入sql

use db_coal;
然后运行复制的sql语句。
此处有个注意事项:高版本数据库(8.0)转存sql文件 并导入低版本数据库(5.7)会出现错误。
MySql数据库导入sql错误 Unknown collation: ‘utf8mb4_0900_ai_ci’
错误原因:高版本数据库(8.0)转存sql文件 并导入低版本数据库(5.7)
解决办法:
方案一:升级mysql至高版本
方案二:将需要导入的sql文件,把其中的
utf8mb4_0900_ai_ci全部替换为utf8_general_ci
utf8mb4替换为utf8
重新执行sql文件
导入成功。

设置用户授权问题(重点)—1045错误

在这里插入图片描述
!!!!!此处一定要设置不然会sql用不上-------指导链接
其实这里也就用到

mysql> use mysql
mysql> grant all privileges on . to ‘root’@’%’ identified by ‘123’ with grant option;

mysql连接出现2003错误

方案一:(有些服务器不会及时响应防火墙端口的状态,我们linux开一下)
开放命令:/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
查看命令:netstat -an|grep 3306
方案二解决方案参考链接

mysql就此告一段落。

3.本地测试一波(前提服务器mysql要配置完)

因为mysql的请求主机是服务器的,所以要运行这个项目jar包,前提服务器要把mysql配置好。
如果不想先上服务器,可以把前端的请求端口和后端的mysql连接调成localhost本机先。

3.1 运行jar包

cmd进入命令行模式,然后输入指令

java -jar jar包的路径(这个指令要有jdk,没有看到4.吧)
例如:
E:\桌面\coal-spring\target>java -jar coal.jar

4.把jar包部署到服务器

4.1 配置java环境—jdk

  1. 安装Java: yum -y install java-1.8.0-openjdk.x86_64

  2. 运行: java -version //这里能看到版本信息,就ok了。

4.2 xftp上传文件

在这里插入图片描述

4.3在服务器中运行jar包(运行项目)

运行java -jar coal.jar命令
在这里插入图片描述
出现运行信息,项目就能正常跑了。在这里插入图片描述

5.配置持久化服务器。

5.1 配置原因

因为在使用华为云ECS服务器的时候,发现如果我们xshell连接中断后,相关的服务器进程会中断,导致这和我们云服务器的初衷违背了,需要开启服务器进程还需要在本机维持ssh会话连接。

5.1.1 为什么ssh一旦断开我们的进程也将会被杀掉?

元凶:SIGHUP 信号

让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。

在Linux/Unix中,有这样几个概念:

进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。

会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。

会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。

根据POSIX.1定义:

挂断信号(SIGHUP)默认的动作是终止程序。
当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。
如果会话期首进程终止,则该信号发送到该会话期前台进程组。
一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。
因此当网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。

这里我认为我们的进程被杀掉也就是因为ssh与服务器之间的通信断掉了,这个通信断掉之后linux程序就默认将该连接下的所有进程都杀掉!

5.2 三种可利用技术。(1-3往下升级)

  1. nohup命令
  2. screen命令
  3. byobu命令

我们这里采用screen命令。就记录这个了,需要深究点击链接

screen命令:

1️⃣先安装screen。

yum install
输入y回车 等待下载完成。
在这里插入图片描述

如果此处出现了错误:没错就跳过这部分

[root@coal-pjx ~]# yum install screen
MySQL Tools Community                                                    4.2  B/s |  10  B     00:02    
Error: Failed to download metadata for repo 'mysql-tools-community': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

出现这个repo的错误是我们yum源中有错误检索不到的源。我们可以先去查看一下我们的repo源。

[root@coal-pjx ~]# yum repolist all 

在这里插入图片描述
可以看到mysql-tools-community是开启状态enabled。我们把它关了。

[root@coal-pjx ~]# yum-config-manager --disable mysql-tools-community

关了之后就能安装了。
普及两个命令:

yum repolist all //查看您拥有的仓库。
yum-config-manager --enable <仓库名> //启用仓库
yum-config-manager --disable <仓库名> //关闭仓库

2️⃣直接使用命令

[root@coal-pjx~]# screen java -jar coal.jar

完事了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值