目录
三、 磁盘和文件管理和使用检测和维护
3.1 磁盘目录
3.2 安装软件
3.2.1 rpm命令
3.2.2 克隆虚拟机
3.2.3 yum或压缩包方式安装jdk
3.2.4 使用虚拟机运行SpringBoot项目
3.2.5 安装mysql80(57)
3.2.6 运行web项目
3.2.7 安装tomcat
三、 磁盘和文件管理和使用检测和维护
3.1 磁盘目录
展示根目录:ls /
/bin (binaries) :该目录中存储的都是一些二进制文件,文件都是可以被运行的。
/dev (devices):该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
/etc (etcetera):该目录主要存储一些配置文件。
/home :表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
/proc:process,表示进程,该目录中存储的是Linux运行时候的进程。
/root:该目录是root用户自己的家目录。
/sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
/tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
/usr:存放的是用户自己安装的软件。类似于windows下的program files。
/var:存放的程序/系统的日志文件的目录。
/mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。
/ 根目录root 超级用户目录
/lost+found 存放一些系统出错的检查结果
注:特殊权限:粘着位t
粘着位定义:当权限为777的目录被授予粘着位,用户只能在此目录下删除自己是所有者的文件
磁盘管理相关命令
1、查看磁盘分区信息
语法:fdisk -l
2、显示文件系统磁盘空间的使用情况
语法:#df -h
选项含义:
-h表示以可读性较高的形式展示大小
3、显示指定的文件(目录)已使用的磁盘空间的总量
语法:#du -sh 目录路径
选项含义:
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示(human-readable)
案例:统计“/root”目录的实际大小
du -sh /root
4、显示当前内存和交换空间的使用情况
作用:查看内存使用情况
语法:#free -m
选项含义:
-m表示以mb为单位查看
3.2 安装软件
3.2.1 rpm命令
rpm的作用类似于windows上的电脑管家中“软件管理”、安全卫士里面“软件管家”等产品,主要作用是对linux服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装。
①查询某个软件的安装情况
#rpm -qa|grep 关键词
选项:
-q:查询,query
-a:全部,all
②卸载某个软件
#rpm -e 软件的名称
当存在依赖关系的时候又不想去解决这个问题的时候可以:
#rpm -e 软件包名 --nodeps
③安装软件:
#rpm -ivh 软件包完整名称
选项:
-i:install,安装
-v:显示进度条
-h:表示以“ # ”形式显示进度条
-U:update升级
3.2.2 克隆虚拟机
虚拟机进行克隆之前需要先关机
克隆虚拟机之后可以优先更改一下克隆机的ip地址
更改IP地址之后重启网络:service network restart
3.2.3 yum或压缩包方式安装jdk
安装最小版本的Centos需要自己安装jdk,如果安装的是标准版的Centos,它会自带jdk
1、使用yum安装jdk
① 先检查jdk是否已经安装
(java -version)
② 查看yum中关于java的文件
yum list|grep java
③ 安装 java-1.8.0-openjdk-devel.x86_64
在查询出来的文件中找到 java-1.8.0-openjdk-devel.x86_64
执行安装指令 yum -y install java-1.8.0-openjdk-devel.x86_64
文件的默认安装位置是:/usr/lib/jvm
④ 配置环境变量
所有的环境变量都在/etc/profile文件中
使用vim 进入文件
vim /etc/profile
定义环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
⑤ 使配置文件生效
source /etc/profile
2、使用压缩包进行的安装jdk
① 先检查jdk是否已经安装
rpm -qa|grep java
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2022g-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.362.b08-1.el7_9.x86_64
java-1.8.0-openjdk-devel-1.8.0.362.b08-1.el7_9.x86_64
java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
② 卸载已经安装的jdk
删除后面三个文件
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.362.b08-1.el7_9.x86_64 java-1.8.0-openjdk-devel-1.8.0.362.b08-1.el7_9.x86_64 java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
③ 利用ftxp将jdk的压缩包传到 /usr/lwlpro2目录中,在usr中可以自己定义目录
④ 解压这个tar包
解压指令:tar -zxvf jdk-8u144-linux-x64.tar.gz
⑤配置环境变量
使用vim /etc/profile 命令进入配置文件中
export JAVA_HOME=/usr/lwlpro2/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
⑥ 重新配置一下文件
source /etc/profile
3.2.4 使用虚拟机运行SpringBoot项目
因为SpringBoot项目自带tomcat,所以在外面运行时只需要jdk即可
通过本机访问项目 要求本机和linux能够相互通信的 所以需要linux关闭防火墙
① 配置打包信息并更改路由信息
在pom文件中配置打包信息
<!-- 如果不写packaging,那么打包时默认打成jar包,可以不写 -->
<packaging>jar</packaging>
在application.properties文件中修改数据库url中的localhost为本机ip地址
本机IP地址可以在dos中获取
win+r打开dos
输入ipconfig 查看IPv4地址
因为这里使用的是本机的mysql,所以这里需要连击本机的数据库
然后更改:
spring.datasource.url=jdbc:mysql://192.168.0.136:3306/vuetest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
② 打包项目
使用maven工具的声明周期中的package功能对项目进行打包
打包前可以先把target缓存删掉
③ 打包测试
测试打包好的文件是否能正常使用
首先将打包好的文件放到一个文件夹中
然后cmd进入dos
执行 java -jar 包名.jar
利用浏览器访问项目中的路径,可以正常获取结果就代表正常
访问时正常使用localhost即可
( http://198.168.0.136:3306/路径
或者是http://localhost:3306/路径 )
访问时产生异常:null, message from server: "Host 'LAPTOP-LLLFPADD' is not allowed to connect to this MySQL server"
这个异常是数据库只允许localhost或127.0.0.1访问,不允许远程访问,使用本机IP(IPv4地址)都不行。
解决方案:修改访问权限即可
1、打开cmd 登录 mysql
mysql -uroot -p
2、use mysql;
4、select host,user from user;
可以看到 host 为 localhost,表示mysql只允许本机访问。将这个值改为 % 即可。
5、update user set host ='%' where user ='root';
6、执行刷新权限:flush privileges; 即可
④将jar包放到虚拟机中
一般 /usr 中是存放项目有关的东西的
可以建立一个lwlpro目录,将jar包存到/usr/lwlpro中(传输时,使用Xftp进行上传)
⑤在虚拟机运行项目
运行命令: java -jar 包名.jar
在浏览器或者postman对路由进行访问,访问时路由地址使用的是虚拟机的ip地址(198.168.111.127)
http://198.168.111.127:3306/路径
看到正常查询结果即可
⑥问题:当使用命令 java -jar 包名.jar 运行SpringBoot项目时,如果关闭远程连接客户端,或者在远程客户端进行别的操作,那么在本地访问时,就会无法连接,所以执行时可以使用nohup命令
一直运行jar文件并指定端口号为多少 当然也可以不指定端口号
nohup java -jar MulTableQuery.jar --server.port=8888 &
这条命令在哪里执行,就会在哪里生成一个 nohup.out 文件夹
可以查看一下这个文件的内容
tail -1000 nohup.out
会发现该项目已经在运行中
推荐使用nohup指令运行项目
3.2.5 安装mysql80(57)
如果是使用的桌面版(不是最小版)安装的centos,虽然系统不自带mysql,但是会带一个简化版的mysql,名为 mariadb,如果有mariadb就无法安装mysql
所以这里留下查询是否安装mariadb和卸载的方法
1、查询是否安装mariadb
rpm -qa | grep mariadb
2、卸载mariadb
rpm -e --nodeps 查询的mariadb名字
linux使用最小安装的时候缺少一些东西,所以需要我们手动的导入
安装mysql80或者是mysql57,只有在第二、三步安装mysql时不同
1、导入:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
2、配置安装源
配置mysql80安装源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
配置mysql57安装源:
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
配置过程:
Retrieving https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
warning: /var/tmp/rpm-tmp.KhBs1K: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql80-community-release-el7-3 ################################# [100%]
3、安装mysql
安装mysql80:
yum --enablerepo=mysql80-community install mysql-community-server
安装mysql57:
yum --enablerepo=mysql57-community install mysql-community-server
Install 3 Packages (+4 Dependent packages)
Upgrade ( 1 Dependent package)
Total download size: 90 M
Is this ok [y/d/N]: 在此输入y,确认下载插件
Replaced:
mariadb-libs.x86_64 1:5.5.60-1.el7_5
Complete!
安装成功
4、启动mysql
centos6查看mysqld服务状态:
service mysqld status
centos7查看mysqld服务状态
systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
系统文件存放地址:/usr/lib/systemd/system
centos6的语法在centos7中是可以使用的,而centos7中的语法在6中有的不可以使用
centos6语法:
service mysqld start
centos7语法:
systemctl start mysqld
启动成功查询状态
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-02-09 14:30:55 CST; 11s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 7691 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 7758 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─7758 /usr/sbin/mysqld
Feb 09 14:30:50 localhost.localdomain systemd[1]: Starting MySQL Server...
Feb 09 14:30:55 localhost.localdomain systemd[1]: Started MySQL Server.
5、查看安装mysql时生成的临时密码
grep password /var/log/mysqld.log
或者是
grep A temporary password /var/log/mysqld.log
[root@localhost ~]# grep password /var/log/mysqld.log
2023-02-09T06:30:52.337535Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /rDso-=s2EVe
6、登录mysql
①输入:mysql -uroot -p
②在Enter password:后面输入临时密码
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 出现这种图标代表登陆成功
退出时输入 exit; 即可退出mysql
③修改密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'Abc123...';
Query OK, 0 rows affected (0.00 sec)
因为最初mysql是有着一套自己的密码验证规则的,登陆成功之后需要先修改一次密码,才可以修改密码验证规则
最初规则:密码至少有8位数,包含大小写,数字和特殊符号
7、修改密码规则
修改完密码以后查看并设置密码规则
show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
策略说明
validate_password.length 是密码的最小长度,默认是8,我们把它改成4
mysql80输入:set global validate_password.length=4;
mysql57输入:set global validate_password_length=4;
validate_password.policy 验证密码的复杂程度,我们把它改成0
mysql80输入:set global validate_password.policy=0;
mysql57输入:set global validate_password_policy=0;
validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉
mysql80输入:set global validate_password.check_user_name=off;
mysql57输入:set global validate_password_check_user_name=off;
8、再次修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '密码';
Query OK, 0 rows affected (0.00 sec) //修改成功
9、配置远程访问
1、切换数据库
mysql> use mysql;
2、查看管理用户权限
mysql> select host, user, authentication_string, plugin from user;
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
3、修改一下user为root的host为% 可以进行远程连接
mysql> update user set host = '%' where user ='root';
4、刷新权限
mysql> flush privileges;
可以再次查看是否修改成功
----------------------------输入 exit; 即可退出mysql---------------------
10、使用本机navicat连接远端linux中的mysql
新建连接
11、数据库测试
本次数据传输的数据库是上面的SpringBoot项目用到的数据库,可以利用上面的springboot项目再次进行测试
1、测试时可以删除application.properties文件中url中的本地ip地址和数据库表
2、测试时修改用户名和密码对应到linux系统中的mysql数据库的用户名和密码
3、执行jar包时,如果没有别的错误,但是依然报500,可以尝试切换端口号
然后再次打包测试
3.2.6 运行web项目
使用war包将对应的项目直接存到tomcat的webapp下面即可tomcat运行时会自动解压项目
3.2.7 安装tomcat
1.上传压缩包
2.解压
3.设置配置文件 /etc/profile
#set tomcat 环境
4。启动tomcat
cd apache-tomcat-8.5.37/bin
./startup.sh
运行tomcat
http://192.168.109.34:8080/
出现logo即为成功