在Linux下部署war包时问题总结

一、常见的liunx命令

在配置文件中,搜索某个字符串的指令
步骤:
1.使用vim命令进入配置文件
2.在nomal状态下输入“ / ”
3.然后输入要搜索的字符串

1.显示当前目录

pwd

2.跳转到上一级目录 和 返回上两级目录

cd ..       //一级
cd ../..    //两级

3.创建文件夹

mkdir

4.删除目录文件夹

rmdir

5.对外开放,使得Xshell能够连接到linux

service sshd status

6.查看Linux服务器的IP信息

ifconfig

7.重命名

mv  旧名   新名

8.开启 查看 关闭防火墙

service  iptables  start  //开启

service  iptables  status//查看  

service  iptables  stop  //关闭

1.多线程的创建三种方式用法及区别

详见:https://www.cnblogs.com/zwwhnly/p/11890032.html
在这里插入图片描述
在这里插入图片描述
查看jdk安装路径
在这里插入图片描述
在这里插入图片描述
安装jdk:详情
![在这里插入图片描述](https://img-blog.csdnimg.cn/0c217a25545945dca6a560c00265aa62.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAd2VpeGluXzQ4MTAyMDk5,size_20,color_FFFFFF,t_70,g_se

二、jdk

卸载jdk

这里是引用

1.强力删除目录及子文件夹

rm -rf 文件名

安装jdk

1.进入到用户根目录

cd /home

2.在用户根目录下创建一个目录downfile

mkdir downfile

3.把jdk压缩包传到downfiles中,使用以下命令解压

tar -xvf jdk-8u261-linux-x64.tar.gz -C /usr/lib/jvm  //默认要解压到/usr/lib/jvm目录下

4.配置环境变量

vim /etc/profile  //进入环境变量配置文件

5.添加如下配置

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6.重启Linux系统

reboot

三、mysql

1.卸载mysql

1.使用该命令可查看有哪些“已经安装的”安装包

rpm -qa | grep mysql

2.使用该命令可查看已安装和未安装的安装包
在这里插入图片描述

yum list mysql*

3.强力删除

rpm -e --nodeps mysql(安装包名)

2.安装mysql (参考资料:参考博文

1.解压压缩包

1.解压到/usr/local/mysql8.0目录下(mysql8.0文件夹为自己创建)

tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql8.0
mv mysql-8.0.25-linux-glibc2.12-x86_64  mysql8  //重命名

2.添加用户组

groupadd mysql //添加用户组
useradd -r -g mysql mysql //添加用户mysql 到用户组mysql(使用-r参数表示mysql用户是一个系统用户,不能登录)
id mysql //添加完用该命令测试,能看到mysql用户的信息

3.手动创建MySQL data目录

cd /usr/local/mysql8.0/mysql8

mkdir data

4.目录权限设置

chown -R mysql:mysql /usr/local/mysql8.0/mysql8  //将mysql及其下所有的目录所有者和组均设为mysql

cd /usr/database/   //查看是否设置成功,执行下面命令,可以看到文件的所有者和组都变成了mysql

ll   //查看

//结果类似 结果中出现:drwxr-xr-x 10 mysql mysql      4096 Jul  3 13:57 mysql5.7

5.配置my.cnf文件

rm -rf /etc/my.cnf

vim /etc/my.cnf

#此文件内容如下(路径根据自己的实际情况):

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

init-connect='SET NAMES utf8'

basedir=/usr/local/mysql8.0/mysql8       #根据自己的安装目录填写

datadir=/usr/local/mysql8.0/mysql8/data #根据自己的mysql数据目录填写

socket=/tmp/mysql.sock

max_connections=200  #允许最大连接数

character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集

default-storage-engine=INNODB #创建新表时将使用的默认存储引擎

6.初始化mysql

/usr/local/mysql8.0/mysql8/bin/mysqld --initialize-insecure --user=mysql  --basedir=/usr/local/mysql8.0/mysql8 --datadir=/usr/local/mysql8.0/mysql8/data

//注意:mysqld --initialize-insecure初始化后的mysql是没有密码的

//然后重新修改下各个目录的权限

chown -R root:root /usr/local/mysql8.0/mysql8/   //把安装目录的目录的权限所有者改为root

chown -R mysql:mysql /usr/local/mysql8.0/mysql8/data/ //把data目录的权限所有者改为mysql


7.启动mysql

/usr/local/mysql8.0/mysql8/bin/mysqld_safe --user=mysql &

8.修改密码


cd /usr/local/mysql8.0/mysql8/bin/   //来到目录下准备启动

./mysql -u root -p // 默认没有密码,直接敲回车就可以
use mysql;

//下面这个命令过时了,对于有些服务器不起作用
update user set authentication_string=password('这里填你设置的密码') where user='root';
//新的修改语句
ALTER USER 'root'@'localhost' IDENTIFIED BY '这里填你设置的密码';

flush privileges;

exit;

9.测试登录

cd /usr/local/mysql8.0/mysql8/bin/   //来到目录下准备启动

./mysql -u root -p //输入密码

有些在输入密码时可能不会显示,但这并不代表真的没有输入

show databases;
exit; //退出

10.copy启动脚本并将其添加到服务且设置为开机启动

cp /usr/local/mysql8.0/mysql8/support-files/mysql.server /etc/init.d/mysql  //mysql启动脚本

chkconfig --add mysql  //添加服务 

chkconfig --list  //显示服务列表 

chkconfig --level 345 mysql on  //开机启动
测试添加的服务是否能用

service mysql status //查看状态

service mysql start  //启动mysql服务

service mysql stop   //停止mysql服务

3.设置外网可以访问

cd /usr/local/mysql8.0/mysql8/bin/   //来到目录下准备启动

./mysql -u root -p //输入密码

use mysql;

select host,user from user;//可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。

调整方法:
update user set host='%' where user ='root';
flush privileges; //执行刷新

如果还访问不了,那可能是防火墙问题,修改下防火墙就ok

4.mysql远程连接Navicat

问题:当所有的安装工作全部完成之后,关闭防火墙,然后再Navicat中输入ip和3306端口,发现还是连接不上
原因:由于我用的linux用的是腾讯云服务器,而云服务器自带防火墙,相当于一共两层防火墙,所以这就导致了在怎么设置linux服务器的防火墙都无济于事
解决办法:在云服务器的控制台增加一个“允许访问的3306端口”
在这里插入图片描述

四、Linux启动tomcat

1.使用到的命令

1.启动命令

cd /usr/local/tomcat/apache-tomcat-8.5.65/bin

./startup.sh

2.查看是否开启成功

netstat -lnp|grep 8080

2.为Tomcat配置环境变量

这里是引用

/usr/local/tomcat/apache-tomcat-8.5.6为解压路径

export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.65

3.启动tomcat后,不能访问Linux服务器

现象: 成功启动Linux服务器上的tomcat,但是在其他服务器上访问该Linux服务器时,出现连接超时和拒接连接的现象

原因:在Linux中没有关闭防火墙,使用如下命令关闭

service iptables status   //查看防火墙状态
service iptables stop     //关闭防火墙

五、在部署springboot项目的war包时中遇到的问题

1.jdk和tomcat的版本不一致导致tomcat不能启动

在使用tomcat部署war时,jdk和tomcat的版本必须一致,32对32,64对64

如何查看jdk的版本
使用命令Java -version
在这里插入图片描述

2.在把war包部署在tomcat上时步骤

1.把war包放到tomcat的webapp目录下
在这里插入图片描述

2.在conf目录中的server.xml中的host标签中添加如下配置
在这里插入图片描述
其中:
path:为浏览器访问时的根目录(自定义,也可以不写,只用"/"表示相当于localhost:8080就能访问)
docBase:为war名称

<Context path="/" docBase="war包名称(没有后缀名)" debug="0" privileged="true" reloadable="true"/>

3.tomcat启动之后没有启动springboot项目

tomcat启动了,但springboot没有启动,我遇到的有两个原因

1.启动类没有继承SpringBootServletInitializer并重写configure方法

问题:在tomcat启动后,在控制中没有spring的标志,说明没有启动springboot项目
在这里插入图片描述

解决办法:需要让启动类继承SpringBootServletInitializer,同时重写configure方法
在这里插入图片描述

2.在pom文件中没有内嵌tomcat服务器

错误的写法
在这里插入图片描述

正确的写法

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>

4.当启动tomcat服务器时,双击startup.bat出现"闪退"现象

现象:我在正常启动时出现了闪退现象,通过一番搜索后,有人说是,jdk安装有问题,我使用Java -version能够正常显示jdk版本号,这说明jdk没有问题

解决办法:出现闪退不能正常启动,可以通过命令行启动tomcat
步骤:
1.使用命令行来到tomcat的bin目录下
2.执行startup.bat命令,tomcat正常启动

5.在访问时不带项目名

特别注意:在部署云服务器时,由于项目名和某个接口名相同,引起的404
在部署时
在这里插入图片描述

在tomcat/conf/server.xml中的host标签中添加如下代码
path="" ---------表示不加任何的项目名就可以访问
docBase=“blog”----------表示war包的名称
在这里插入图片描述

<Context path="" docBase="blog" debug="0" privileged="true" reloadable="true"/>

六、部署到腾讯云服务器时出现的问题

1.解压jdk时报错

1.解压jdk时出现的报错
在这里插入图片描述
2.原因是告诉我们找不到jdk文件,但是我明明已经把jdk放在了/home/down路径下
真正原因是:默认的linux共享库搜索路径为/lib和/usr/lib目录,若共享库不在这两个路径,进程运行时不能自动链接
3.解决办法:在解压时指明解压后的存放绝对路径

sudo tar -xvzf /home/downfile/jdk-8u201-linux-x64.tar.gz -C /usr/lib/jvm

解压到指定usr/lib/jvm目录下

`

2.Tomcat启动成功后使用8080端口访问不到

问题:Tomcat启动成功,在使用8080访问云服务器时,出现拒绝访问界面
原因:服务器的防火墙只对http 80端口允许访问
在这里插入图片描述

相关推荐

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

weixin_48102099

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值