linux系统tomcat部署SpringBoot+vue前后端分离项目准备工作
前提条件已经在虚拟机上安装好linux系统了。
第一步:下载需要的软件,建议自己去官网下载,以下为本人已经下载好的放在网盘的。
jdk:
tomcat:
mysql:
第二步:将jdk、tomcat、mysql上传到linux中。
1、可以通过rz命令直接选择上传
[root@localhost myfile]$rz
2、通过sftp上传文件如下图和代码
sftp> cd /opt/myfile/ sftp> ls jdk-8u271-linux-aarch64.tar.gz sftp> put E:\linux\tomcat\apache-tomcat-8.5.61.tar.gz Uploading apache-tomcat-8.5.61.tar.gz to /opt/myfile/apache-tomcat-8.5.61.tar.gz 100% 10246KB 10246KB/s 00:00:01 E:/linux/tomcat/apache-tomcat-8.5.61.tar.gz: 10492067 bytes transferred in 1 seconds (10246 KB/s)
3、通过scp命令将文件上传,我用的是cmder,通过scp 文件路径 用户名@ip:/路径 将本地E:\linux\mysql\mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz 上传到192.168.199.214的/opt/myfile/路径中,需要输入yes确认以及输入admin对应的命令。
E:\linux\mysql λ scp mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz admin@192.168.199.214:/opt/myfile The authenticity of host '192.168.199.214 (192.168.199.214)' can't be established. ECDSA key fingerprint is SHA256:drQxf1K1d6NNTnDDA0PiOUHwBNmIThzDyloHrFfmWx4. Are you sure you want to continue connecting (yes/no)? Warning: Permanently added '192.168.199.214' (ECDSA) to the list of known hosts. admin@192.168.199.214's password: mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz 100% 190MB 94.8MB/s 00:02 E:\linux\mysql
从linux中想window中获取文件时,只需要将linux系统的路径写在前边即可,如下代码
scp admin@192.168.199.214:/opt/myfile/1.txt E:\linux\mysql\
4、通过挂载U盘的方式将文件上传。或者xftp等各种文件,就不再一一列举。
第二步:开始安装jdk,一般linux都会自带,但是网上百度说不建议使用,据说是少东西。
1、通过命令确定是否存在自带的jdk,
[root@localhost myfile]$java -version openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
2、通过命令:yum remove *openjdk* 进行卸载,最后再次通过java -version 进行确认
[root@localhost myfile]$yum remove *openjdk* 已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. 正在解决依赖关系 --> 正在检查事务 ---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.161-2.b14.el7 将被 删除 --> 正在处理依赖关系 java >= 1.5,它被软件包 jline-1.0-8.el7.noarch 需要 --> 正在处理依赖关系 java-1.8.0-openjdk,它被软件包 icedtea-web-1.7.1-1.el7.x86_64 需要 ---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.161-2.b14.el7 将被 删除 --> 正在检查事务 ---> 软件包 icedtea-web.x86_64.0.1.7.1-1.el7 将被 删除 ---> 软件包 jline.noarch.0.1.0-8.el7 将被 删除 --> 正在处理依赖关系 jline,它被软件包 rhino-1.7R5-1.el7.noarch 需要 --> 正在检查事务 ---> 软件包 rhino.noarch.0.1.7R5-1.el7 将被 删除 --> 解决依赖关系完成 依赖关系解决 ================================================================================ Package 架构 版本 源 大小 ================================================================================ 正在删除: java-1.8.0-openjdk x86_64 1:1.8.0.161-2.b14.el7 @anaconda/7.5 501 k java-1.8.0-openjdk-headless x86_64 1:1.8.0.161-2.b14.el7 @anaconda/7.5 103 M 为依赖而移除: icedtea-web x86_64 1.7.1-1.el7 @anaconda/7.5 2.3 M jline noarch 1.0-8.el7 @anaconda/7.5 72 k rhino noarch 1.7R5-1.el7 @anaconda/7.5 1.1 M 事务概要 ================================================================================ 移除 2 软件包 (+3 依赖软件包) 安装大小:107 M 是否继续?[y/N]:y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在删除 : icedtea-web-1.7.1-1.el7.x86_64 1/5 正在删除 : rhino-1.7R5-1.el7.noarch 2/5 正在删除 : jline-1.0-8.el7.noarch 3/5 正在删除 : 1:java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64 4/5 正在删除 : 1:java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64 5/5 验证中 : 1:java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64 1/5 验证中 : 1:java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64 2/5 验证中 : rhino-1.7R5-1.el7.noarch 3/5 验证中 : icedtea-web-1.7.1-1.el7.x86_64 4/5 验证中 : jline-1.0-8.el7.noarch 5/5 删除: java-1.8.0-openjdk.x86_64 1:1.8.0.161-2.b14.el7 java-1.8.0-openjdk-headless.x86_64 1:1.8.0.161-2.b14.el7 作为依赖被删除: icedtea-web.x86_64 0:1.7.1-1.el7 jline.noarch 0:1.0-8.el7 rhino.noarch 0:1.7R5-1.el7 完毕! [root@localhost myfile]$java -version bash: /usr/bin/java: 没有那个文件或目录
3、开始安装自己上传的jdk
创建安装目录,将jdk压缩包复制过去,解压
[root@localhost myfile]$mkdir /usr/java [root@localhost myfile]$cp jdk-8u271-linux-aarch64.tar.gz /usr/java/ [root@localhost myfile]$cd /usr/java/ [root@localhost java]$ls jdk-8u271-linux-aarch64.tar.gz [root@localhost java]$tar -xvf jdk-8u271-linux-aarch64.tar.gz
通过命令:vim /etc/profile 配置环境变量,在最后面添加标红加粗的代码
[root@localhost java]$vim /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
fi
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
export JAVA_HOME=/usr/java/jdk1.8.0_271
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib
export JAVA_HOME PATH CLASSPATH
最后记得通过命令:source /etc/profile 使设置生效,生效后,通过java -version 确认是否成功安装。
[root@localhost java]$source /etc/profile [root@localhost java]$java -version bash: /usr/java/jdk1.8.0_271/bin/java: 无法执行二进制文件
报错:无法执行二进制文件,是由于jdk为32位的但是linux是64位的所以需要去官网重新下载64位的.
最终结果如下就代表安装好了
[root@localhost java]$java -version java version "1.8.0_271" Java(TM) SE Runtime Environment (build 1.8.0_271-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
第三步:安装tomcat
1、创建一个tomcat文件夹,解压,配置环境变量,注意标红的位置。还是需要通过命令:source /etc/profile 是修改后的文件生效
[root@localhost tomcat]$mkdir /usr/tomcat [root@localhost tomcat]$cp /opt/myfile/apache-tomcat-8.5.61.tar.gz /usr/tomcat/
[root@localhost tomcat]$tar -xvf apache-tomcat-8.5.61.tar.gz
[root@localhost tomcat]$vi /etc/profile # /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_271 export CATALINA_HOME=/usr/tomcat/apache-tomcat-8.5.61 export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib export JAVA_HOME PATH CLASSPATH CATALINA_HOME
[root@localhost tomcat]$source /etc/profile
2、完成操作后就可以查看tomcat版本,并且启动,测试连接
[root@localhost apache-tomcat-8.5.61]$cd /usr/tomcat/apache-tomcat-8.5.61/bin/ [root@localhost bin]$./version.sh Using CATALINA_BASE: /usr/tomcat/apache-tomcat-8.5.61 Using CATALINA_HOME: /usr/tomcat/apache-tomcat-8.5.61 Using CATALINA_TMPDIR: /usr/tomcat/apache-tomcat-8.5.61/temp Using JRE_HOME: /usr/java/jdk1.8.0_271 Using CLASSPATH: /usr/tomcat/apache-tomcat-8.5.61/bin/bootstrap.jar:/usr/tomcat/apache-tomcat-8.5.61/bin/tomcat-juli.jar Using CATALINA_OPTS: Server version: Apache Tomcat/8.5.61 Server built: Dec 3 2020 14:03:28 UTC Server number: 8.5.61.0 OS Name: Linux OS Version: 3.10.0-862.el7.x86_64 Architecture: amd64 JVM Version: 1.8.0_271-b09 JVM Vendor: Oracle Corporation [root@localhost bin]$./shutdown.sh Using CATALINA_BASE: /usr/tomcat/apache-tomcat-8.5.61 Using CATALINA_HOME: /usr/tomcat/apache-tomcat-8.5.61 Using CATALINA_TMPDIR: /usr/tomcat/apache-tomcat-8.5.61/temp Using JRE_HOME: /usr/java/jdk1.8.0_271 Using CLASSPATH: /usr/tomcat/apache-tomcat-8.5.61/bin/bootstrap.jar:/usr/tomcat/apache-tomcat-8.5.61/bin/tomcat-juli.jar Using CATALINA_OPTS: [root@localhost bin]$./startup.sh Using CATALINA_BASE: /usr/tomcat/apache-tomcat-8.5.61 Using CATALINA_HOME: /usr/tomcat/apache-tomcat-8.5.61 Using CATALINA_TMPDIR: /usr/tomcat/apache-tomcat-8.5.61/temp Using JRE_HOME: /usr/java/jdk1.8.0_271 Using CLASSPATH: /usr/tomcat/apache-tomcat-8.5.61/bin/bootstrap.jar:/usr/tomcat/apache-tomcat-8.5.61/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started. [root@localhost bin]$
第四步:安装mysql,参考链接:https://www.cnblogs.com/wendy-0901/p/12673705.html
检测系统是否自带Mysql
# rmp -qa|grep mysql
如果有进行强行卸载
# rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
检测系统是否自带mariadb
# rpm -qa|grep mariadb
# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
# rpm -e --nodeps mariadb-5.5.64-1.el7.x86_64
# rpm -e --nodeps mariadb-server-5.5.64-1.el7.x86_64
用连接工具将下载的mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上传到linux服务器/data/software/的目录下面
三、安装
进入/data/software/目录下解压
# tar -zxvf mysql-5.7.28.tar.gz
解压完成后重命名
# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
# mv mysql-5.7.28 /usr/local/
检查mysql组和用户是否存在,如果没有则创建
cat /etc/group|grep mysql
groupadd mysql
useradd -r -g mysql mysql #useradd -r参数表示mysql用户是系统用户,不可用于登录系统
安装数据库
创建data目录
cd
/usr/local/mysql-5.7.28
mkdir data
将/usr/local/mysql-5.7.28的所有者及所属组改为mysql
# chown -R mysql.mysql /usr/local/mysql-5.7.28
在/usr/local/mysql-5.7.28/support-files目录下创建my_default.cnf
# vim my_default.cnf
[mysqld]
#设置mysql的安装目录
basedir =/usr/local/mysql-5.7.28
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql-5.7.28/data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /usr/local/mysql-5.7.28/data/mysqld.log
pid-file = /usr/local/mysql-5.7.28/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
拷贝,是否覆盖,是
# cp my_default.cnf /etc/my.cnf
初始化Mysql
# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.28/ --datadir=/usr/local/mysql-5.7.28/data/
如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过
yum install libaio
初始化完成之后查看日志
cat /usr/local/mysql-5.7.28/data/mysqld.log,蓝框里的是临时密码
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
进入mysql并更改密码
cd /usr/local/mysql-5.7.28
./bin/mysql -u root -p
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
如果更改时报错:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',就先查询一下是否已更改,最后执行刷新。
重启mysql生效
service mysql restart
注:如果报以下错误
解决方法:修改MySQL的配置文件,
1、windows下找到MySQL的安装目录的my.ini文件,修改其中的配置为不启动ONLY_FULL_GROUP_BY模式
删掉带有ONLY_FULL_GROUP_BY的模式就ok了,如果没有找到my.ini文件。
去系统的隐藏文件夹查看,在某个盘下输入%ProgramData%然后搜索MySQL的my.ini文件
2、linux下找到my.cnf文件,这个是配置MySQL的文件。一般这个文件是在etc文件夹下。
vi my.cnf 编辑这个文件,然后在图示的位置上加入sql_mode =
"STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FO
R_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
然后重启MySQL服务:service mysql restart
杂记:
[root@localhost opt]# cd myfile/ [root@localhost myfile]# ls
注意标红的地方,这是文件路径,但是只显示现在所在文件夹的名字,无法显示完全的路径,可以通过root用户进行设置。具体方法如下标红处。
[root@localhost opt]$vi ~/.bashrc
然后再该文件中最下边一行添加如下代码即可。
export PS1='[\u@\h \W]$'
最后通过source命令将其生效。
source ~/.bashrc
具体符号含义如下
PS1:提示符的设置 PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下。下面是FC4环境下默认的特殊符号所代表的意义: \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" \H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 \t :显示时间为24小时格式,如:HH:MM:SS \T :显示时间为12小时格式 \A :显示时间为24小时格式:HH:MM \u :当前用户的账号名称 \v :BASH的版本信息 \w :完整的工作目录名称。家目录会以 ~代替 \W :利用basename取得工作目录名称,所以只会列出最后一个目录 \# :下达的第几个命令 \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$ 默认的PS1内容为: '\u@\h\W\$' ,所以默认的提示符就是:[root@linux ~]#