目录:

  • 前言:
  • 0.服务器的准备
  • 1.前端排查打包。
  • 1.1 打开vscode前端,查看所有前端的请求端口,并且修改:
  • 1.2 打包前端到后端IDEA中。
  • 2.后端排查打包
  • 2.1 配置sql请求的域名
  • 2.2 打包项目,生成jar包。
  • !!!主角:服务器mysql的配置。
  • 1️⃣用ssh工具连接服务器,或者本地cmd输入指令
  • 2️⃣ 安装mysql
  • 获取并挂载社区版mysql
  • 3️⃣进行配置。
  • 启动mysql
  • 验证是否运行
  • 创建密码登陆
  • 大小写敏感(mybatis设置驼峰了,没必要看了)
  • 创建数据库
  • 导入sql
  • 设置用户授权问题(==重点==)---1045错误
  • mysql连接出现2003错误
  • 3.本地测试一波(前提服务器mysql要配置完)
  • 3.1 运行jar包
  • 4.把jar包部署到服务器
  • 4.1 配置java环境---jdk
  • 4.2 xftp上传文件
  • 4.3在服务器中运行jar包(运行项目)
  • 5.配置持久化服务器。
  • 5.1 配置原因
  • 5.1.1 为什么ssh一旦断开我们的进程也将会被杀掉?
  • 5.2 三种可利用技术。(1-3往下升级)
  • screen命令:


前言:

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

0.服务器的准备

1.本项目服务器是华为弹性云服务器ECS,配置信息:

vue怎么连接mysql在前端 vue项目连接mysql_mysql


2.采用的安全组sg-test-lcc

vue怎么连接mysql在前端 vue项目连接mysql_vue.js_02


服务器准备好了,往下继续。

1.前端排查打包。

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

vue怎么连接mysql在前端 vue项目连接mysql_spring boot_03

1.2 打包前端到后端IDEA中。

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

vue怎么连接mysql在前端 vue项目连接mysql_vue.js_04


vue怎么连接mysql在前端 vue项目连接mysql_spring boot_05

话不多说,开始打包:

1️⃣打开项目src下的控制台:

vue怎么连接mysql在前端 vue项目连接mysql_vue怎么连接mysql在前端_06


2️⃣运行项目打包

vue怎么连接mysql在前端 vue项目连接mysql_spring boot_07


3️⃣打包完成后会出现一个根据你build中自定义的路径出现的文件。

vue怎么连接mysql在前端 vue项目连接mysql_服务器_08


4️⃣将dist内的文件整一个放入IDEA项目中的static下

vue怎么连接mysql在前端 vue项目连接mysql_spring boot_09

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

vue怎么连接mysql在前端 vue项目连接mysql_vue.js_10


完事后就会生成对应的target目录,里面有相关的文件和jar包(这个jar包我改过名,name不一样不要介意)。

vue怎么连接mysql在前端 vue项目连接mysql_spring boot_11

!!!主角:服务器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

vue怎么连接mysql在前端 vue项目连接mysql_spring boot_12

[root@coal-pjx tmp]# rpm -ivh mysql80-community-release-fc34-1.noarch.rpm

vue怎么连接mysql在前端 vue项目连接mysql_mysql_13

这里出现了错误信息,查看发现是什么头什么V3啥的签名错误。罢工了,百度瞅瞅。

百度后说是

yum安装了旧版本的GPG keys造成的


 [root@coal-pjx tmp]# rpm -ivh mysql80-community-release-fc34-1.noarch.rpm --force --nodeps

vue怎么连接mysql在前端 vue项目连接mysql_mysql_14

接着就安装吧


[root@coal-pjx tmp]# yum install mysql mysql-server mysql-devel -y --nogpgcheck


vue怎么连接mysql在前端 vue项目连接mysql_spring boot_15

啥玩意啊??刚下了点皮毛就不给下了。

这里暂时罢工了,暂时摸索不到原因,到时候看到了回来更新。

垃圾箱警告!


[root@coal-pjx tmp]#

rm -rf mysql80-community-release-fc34-1.noarch.rpm

mysql源:(这个也G了)

找到最新的,然后获取地址

vue怎么连接mysql在前端 vue项目连接mysql_vue.js_16


开始操作:


[root@coal-pjx tmp]# wget http://repo.mysql.com/mysql80-community-release-fc33.rpm


vue怎么连接mysql在前端 vue项目连接mysql_服务器_17


[root@coal-pjx tmp]# rpm -ivh mysql80-community-release-fc33.rpm --force --nodeps


vue怎么连接mysql在前端 vue项目连接mysql_mysql_18


[root@coal-pjx tmp]# yum install mysql mysql-server mysql-devel -y --nogpgcheck


vue怎么连接mysql在前端 vue项目连接mysql_服务器_19


两个地址的资源都没法下最新的,

有缘江湖再见。

可以探究一下换个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

vue怎么连接mysql在前端 vue项目连接mysql_服务器_20

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

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

  1. 打开mysql配置文件
    vi /etc/my.cnf
  2. 如图所示在[mysqld]后添加添加
    lower_case_table_names=1
  1. 重启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错误

vue怎么连接mysql在前端 vue项目连接mysql_服务器_21


!!!!!此处一定要设置不然会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上传文件

vue怎么连接mysql在前端 vue项目连接mysql_vue怎么连接mysql在前端_22

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

运行java -jar coal.jar命令

vue怎么连接mysql在前端 vue项目连接mysql_服务器_23


出现运行信息,项目就能正常跑了。

vue怎么连接mysql在前端 vue项目连接mysql_vue怎么连接mysql在前端_24

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回车 等待下载完成。

vue怎么连接mysql在前端 vue项目连接mysql_服务器_25

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

[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

vue怎么连接mysql在前端 vue项目连接mysql_vue.js_26


可以看到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

完事了。