linux

目录介绍

编号 目录 含义
1 /bin 存放二进制可执行文件
2 /boot 存放系统引导时使用的各种文件
3 /dev 存放设备文件
4 /etc 存放系统配置文件, 比如:安装完毕jdk,安装maven、配置环境变量
5 /home 用户的主目录,存放用户的个人资料的。比如:linux是一个多用户的操作系统,创建了zhangsan用户,那么在home目录里面有zhangsan文件夹。 linux中有几个普通用户 那么在这个文件夹中 就会有几个和用户名同名的文件夹
6 /lib 存放程序运行所需的共享库和内核模块
7 /opt 额外安装的可选应用程序包所放置的位置
8 /root 超级管理员的主目录
9 /sbin 存放二进制可执行文件,只有root用户才能访问
10 /tmp 存放临时文件
11 /usr 安装软件的默认目录
12 /var 存放运行时需要改变数据的文件,例如日志文件

Linux常用命令

序号 命令 对应英文 作用
1 ls [目录名] list 查看当前目录下的内容
2 pwd print work directory 查看当前所在目录
3 cd [目录名] change directory 切换目录
4 touch [文件名] touch 如果文件不存在,创建文件
5 mkdir [目录名] make directory 创建目录
6 rm [文件名] remove 删除指定文件
[root@localhost ~]# 
root:当前登录的用户名
@:标志
localhost:连接的是本地虚拟机中安装的linux系统
~:代表当前用户的主目录 /root
#:代表管理员
$:代表普通用户 /home/yxh

ls

作用: 显示指定目录下的所有内容
语法: ls [-al] [dir]
说明: 
	-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
	-l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出

注意: 
	由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll

常见用法: 
	ls -al 	查看当前目录的所有文件及目录详细信息
	ls -al /etc   查看/etc目录下所有文件及目录详细信息
	ll  	查看当前目录文件及目录的详细信息 

cd

作用: 用于切换当前工作目录,即进入指定目录
语法: cd [dirName]

特殊说明: 
	~	表示用户的主目录,超级管理员的用户的主目录root
	. 	表示目前所在的目录
	.. 	表示目前目录位置的上级目录



举例: 
	cd 	..		切换到当前目录的上级目录
	cd 	~		切换到用户的home目录
	cd 	/usr/local	切换到/usr/local目录

cat

作用: 用于显示文件内容
语法: cat [-n] fileName

说明:
	-n: 由1开始对所有输出的行数编号

举例:
	cat /etc/profile		查看/etc目录下的profile文件内容

more

作用: 以分页的形式显示文件内容
语法: more fileName

操作说明:
    回车键 	向下滚动一行
    空格键 	向下滚动一屏
    b 		返回上一屏
    q或者Ctrl+C	退出more

举例:
	more /etc/profile		以分页方式显示/etc目录下的profile文件内容

tail

作用: 查看文件末尾的内容
语法: tail [-f] fileName

说明:
	-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出

举例: 
tail /etc/profile		显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile	显示/etc目录下的profile文件末尾20行的内容
tail -f /tyhxzy/my.log	动态读取/tyhxzy目录下的my.log文件末尾内容并显示

mkdir

作用: 创建目录
语法: mkdir [-p] dirName

说明: 
	-p: 确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建

举例: 
    mkdir tyhxzy  在当前目录下,建立一个名为tyhxzy的子目录
    mkdir -p tyhxzy/test   在工作目录下的tyhxzy目录中建立一个名为test的子目录,若tyhxzy目录不存在,则建立一个

rmdir

作用: 删除空目录
语法: rmdir [-p] dirName

说明:
	-p: 当子目录被删除后使父目录为空目录的话,则一并删除

举例:
    rmdir tyhxzy   删除名为tyhxzy的空目录
    rmdir -p tyhxzy/test   删除tyhxzy目录中名为test的子目录,若test目录删除后tyhxzy目录变为空目录,则也被删除
    rmdir tyhxzy*   删除名称以tyhxzy开始的空目录

rm

作用: 删除文件或者目录
语法: rm [-rf] name

说明: 
    -r: 将目录及目录中所有文件(目录)逐一删除,即递归删除
    -f: 无需确认,直接删除

举例: 
    rm -r tyhxzy/     删除名为tyhxzy的目录和目录中所有文件,删除前需确认
    rm -rf tyhxzy/    无需确认,直接删除名为tyhxzy的目录和目录中所有文件
    rm -f hello.txt   无需确认,直接删除hello.txt文件

cp

作用: 用于复制文件或目录
语法: cp [-r] source dest

说明: 
	-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

举例: 
    cp hello.txt tyhxzy/            将hello.txt复制到tyhxzy目录中
    cp hello.txt ./hi.txt           将hello.txt复制到当前目录,并改名为hi.txt
    cp -r tyhxzy/ ./itheima/    	将tyhxzy目录和目录下所有文件复制到itheima目录下
    cp -r tyhxzy/* ./itheima/ 	 	将tyhxzy目录下所有文件复制到itheima目录下

mv

作用: 剪切,重命名(如果在同一个路径操作就是重命名,否则就是剪切)
语法: mv source dest

举例: 
    mv hello.txt hi.txt                 将hello.txt改名为hi.txt
    mv hi.txt itheima/                  将文件hi.txt移动到itheima目录中
    mv hi.txt itheima/hello.txt   		将hi.txt移动到itheima目录中,并改名为hello.txt
    mv tyhxzy/ itheima/                 如果itheima目录不存在,将tyhxzy目录改名为itheima
    mv tyhxzy/ itheima/                 如果itheima目录存在,将tyhxzy目录移动到itheima目录中

打包压缩命令

作用: 对文件进行打包、解包、压缩、解压
语法: tar  [-zcxvf]  fileName  [files]
    包文件后缀为.tar表示只是完成了打包,并没有压缩(归档文件)
    包文件后缀为.tar.gz表示打包的同时还进行了压缩

说明:
    -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压   tar.gz
    -c: c代表的是create,即创建新的打包文件   tar
    -x: x代表的是extract,实现从包文件中还原文件
    -v: v代表的是verbose,显示命令的执行过程
    -f: f代表的是file,用于指定包文件的名称

举例:
    打包
        tar -cvf hello.tar ./*		  		将当前目录下所有文件打包,打包后的文件名为hello.tar
        tar -zcvf hello.tar.gz ./*		  	将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
	
    解包
        tar -xvf hello.tar		  			将hello.tar文件进行解包,并将解包后的文件放在当前目录
        tar -zxvf hello.tar.gz		  		将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
        tar -zxvf hello.tar.gz -C /usr/local     将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录

文本编辑命令

vi&vim介绍

作用: 对文件内容进行编辑,vim其实就是一个文本编辑器
语法: vim fileName
说明:
1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。

三种模式:
- 命令模式(不可编辑内容)
A. 命令模式下可以查看文件内容、搜索文本内容.

按下/输入搜索内容即可.
命令模式指令 含义
gg 定位到文本内容的第一行
G 定位到文本内容的最后一行
dd 删除光标所在行的数据
ndd 删除当前光标所在行及之后的n行数据
u 撤销操作
shift+zz 保存并退出
i 或 a 或 o 进入插入模式
  • 插入模式
    A. 插入模式下可以对文件内容进行编辑
    B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
    C. 在插入模式下按下ESC键,回到命令模式

  • 底行模式

    1. 按下esc回到命令模式
    2. 在命令模式的基础上按下 shift+:
    3. 按下保存退出: :wq(保存退出) :q!(强制退出不保存)
    底行模式命令 含义
    :wq 保存并退出
    :q! 不保存退出
    :set nu 显示行号
    :set nonu 取消行号显示
    :n 定位到第n行, 如 :10 就是定位到第10行

查找命令

find

作用: 在指定目录下查找文件
语法: find dirName -option fileName
举例:
    find  .  –name "*.java"			在当前目录及其子目录下查找.java结尾文件
    find  /tyhxzy  -name "*.java"	在/tyhxzy目录及其子目录下查找.java结尾的文件

grep

作用: 从指定文件中查找指定的文本内容
语法: grep word fileName
举例: 
    grep Hello HelloWorld.java	查找HelloWorld.java文件中出现的Hello字符串的位置
    grep hello *.java			查找当前目录中所有.java结尾的文件中包含hello字符串的位置

查看系统的进程命令

ps -ef    系统的所有的进程都展示出来

image-20230616150509693

杀死进程

kill -9(强制杀死)|-2(温和杀死)  进程id号
kill -9 7694 强制杀死7694进程 

管道命令(|)

作用: 上一个命令的结果提供给下一个命令去使用。

例子:杀死vim进程

image-20230616150830419

Linux 的权限命令

用户和组管理

	Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统 管理员申请一个账号,然后以这个账号的身份进 入系统。
	Linux中所创建的账号和其相关信息(密码除外)均放在 /etc/passwd 文件中,为安全起见,用户真实的密码采用MD5加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。linux在安装好后会默认创建多个用户,但是这些用户为Linux进程用户不能登录
      
        一个用户可以在多个组中,每个组也可以有多个用户
        用户的权限是多个组的权限的一个叠加
      
	用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔
使用指令: 
	cat /ect/passwd 查看用户信息结构
用户指令操作
	① useradd  用户名 # 添加用户
	② passwd 用户名 # 为当前用户设置密码
	③ userdel -r 用户名 # 删除该账户和所有目录结构
	④ passwd -l 用户名 # 锁定账户密码
	⑤ passwd -u 用户名 # 解锁账户密码
	⑥ passwd -S 用户名 # 查看用户密码锁定状态
	⑦ groups  # 查看用户属于哪个组
用户组操作命令
	① groupadd 组名 # 创建用户组
	② groupdel  组名 #  删除用户组
	③ useradd  -g 组名  用户名 # 创建用户并且制定用户所属的组
	④ gpasswd -a 用户账户  用户组名  # 将某个用户添加到该组
	⑤ gpasswd -d 用户账户  用户组名  # 将某个用户移除该组
切换用户和操作环境
	① su - username #用户和操作环境都改变
	② su username  #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限
用户和组常用命令
	① groups # 查看当前登录用户的组内成员
	② groups 用户名  # 查看当前用户所在的组
	③ whoami # 查看当前登录用户名

文件权限

第0位确定文件类型(d代表目录, -代表文件, l链接(快捷键))。
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。---User
第4-6位确定所属组(同用户组的)拥有该文件的权限。---Group
第7-9位确定其他用户拥有该文件的权限。 ---Other
注:读写执行也可以用数字表示:r=4,w=2,x=1
  
ls -l
d rwx r-x r-x,6 root root 138 6月 16 15:00 a.txt
r:读
w:写
x:执行
  
rwx:读写执行的权限都有
r-x:只有读和执行的权限
rw-:读写的权限
6:连接数
root:文件的所有者
root:文件的所有者所在组名字
138:文件或者文件夹的大小
6月 16 15:00:创建时间
a.txt:文件名

image-20230616154355673

改变权限的命令
	① chmod 755 文件 # 赋予某文件权限rwxr-xr-x
	② chmod  u=rwx,g=rx,o=rx  文件 # 同上u=用户权限,g=组权限,o=不同组其他用户权限
	③ chmod u-x,g+w  文件名 # 给abc去除用户执行的权限,增加组写的权限
	④ chmod a+r  文件名 # 给所有用户添加读的权限
改变所有者(chown)和用户组(chgrp)命令
	① chown  用户名 文件名 # 改变文件的所有者为某用户
	② chgrp 组  文件 # 改变文件所属的组
	③ chown 用户 目录 # 改变这个目录的所有者
	④ chown ‐R 用户 目录 # 改变这个目录及其下面所有的文件和目录的所有者
改变用户所在组
	usermod ‐g 组名 用户名 #在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

防火墙配置

linux默认防火墙是开启,而且所有的端口对外都是不可访问的。这么做的目的:安全。 问题:比如我等会在linux上安装tomcat的软件的。 tomcat软件需要使用8080端口。但是由于端口对外都是不可访问的,所以windows没法访问linux的tomcat。

解决上述问题的方案有两种:

  1. 直接关闭防火墙,释放所有的端口,允许外界去访问全部的端口 , 方便省心,弊端不安全(开发阶段)
  2. 只开放8080端口。开放指定的端口 (生产阶段,项目上线)

语法格式

防火墙服务

命令 作用
systemctl start firewalld 开启
systemctl stop firewalld 关闭
systemctl enable firewalld 开机自启动(默认状态)
systemctl disable firewalld 关闭开机自启
systemctl status firewalld 查看当前防火墙状态

操作演示

  1. 确认当前是管理员的账户,查看防火墙当前的状态
  2. 关闭防火墙,再查看防火墙的状态
  3. 再次开启防火墙,查看防火墙的状态

执行结果

image-20230620143008178

<font color="red">firewall-cmd</font>

外网或内网需要连接到当前系统内的程序进行操作,需要linux系统开放程序端口,否则无法访问。

firewall-cmd 参数说明
--zone=public 开放哪个网络,默认是public
public: image-20230620143110383
internal:image-20230620143121500
--add-port=端口/tcp 添加到防火墙中端口号,对外是打开的
--remove-port=端口/tcp 从防火墙的规则中删除端口号
--permanent 永久添加规则
--list-all 显示现有的规则,展示所有开放端口
--reload 重新加载规则,让新加的端口号起作用,重启防火墙的服务 systemctl restart firewalld

步骤

  1. 永久开放443端口,添加到公开区域,允许外部连接
  2. 重新加载防火墙的规则
  3. 显示所有打开的端口号
  4. 从公共区域中,永久移除443端口,不允许外部连接
  5. 重新加载防火墙规则
  6. 显示打开的端口号

效果

image-20230620143142080

image-20230620143155155

小结

说说下面代码的作用

  1. 关闭、开启防火墙、设置自启、关闭自启服务命令?

    systemctl stop|start|enable|disable firewalld

  2. 开放(添加)指定端口命令

    firewall-cmd --add-port=端口/tcp --zone=public --permanent

    刷新查看新添加的端口号

    firewall-cmd --reload

    查看防火墙开放了哪些端口号

    firewall-cmd --list-all

  3. 删除开放端口命令:

    firewall-cmd --remove-port=端口/tcp --zone=public --permanent

  4. 重新加载,展示列表

    firewall-cmd --list-all

软件安装

软件安装方式

在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

安装方式 特点
二进制发布包安装 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 , tomcat\jdk
rpm安装( 软件管家) 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
yum安装 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)
源码编译安装 软件以源码工程的形式发布,需要自己编译打包 , redis

安装JDK

上述我们介绍了Linux系统软件安装的四种形式,接下来我们就通过第一种(二进制发布包)形式来安装JDK。 JDK对应的二进制发布包,在课程资料中已经提供,如下:image-20230620144224882

JDK具体安装步骤如下:

1). 上传安装包

目标

在Linux下安装JDK

JDK安装步骤

  1. 在/下创建soft目录,将提供的"软件"复制到Linux的soft目录下

    mkdir /soft
    cd /soft
    
  2. 进入“/soft”目录,解压jdk到指定目录/usr/local下

tar -xvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
  1. 查看解压后的目录,目录中有jdk1.8.0_221为jdk解压的目录

    image-20230620144248106

  2. 编辑/etc/profile文件

vim /etc/profile
  1. 配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去,注:放在文件的最后面。

    export命令用于将shell变量输出为环境变量

    #set java environment
    JAVA_HOME=/opt/soft/jdk1.8.0_221
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME PATH
    

    命令1:vim /etc/profile

    命令2:在文件末尾处,输入o(表示在光标下插入新行),复制上面的环境变量配置粘贴,并写入保存

    1. 重新加载/etc/profile配置文件
    source /etc/profile
    
    1. 判断JDK是否安装成功

image-20230620144739807

JDK安装小结java

  1. 解压到压缩包到:/usr/local
  2. 配置环境变量: /etc/profile
    1. JAVA_HOME
    2. PATH
  3. 重新加载配置: source

安装Tomcat

Tomcat安装

目标

在Linux上安装Tomcat

安装Tomcat的步骤

  1. 进入soft文件夹,解压Tomcat到/usr/local下
tar -xvf apache-tomcat-8.5.51.tar.gz  -C /usr/local
  1. 开放Linux的对外访问的端口8080
firewall-cmd --zone=public --add-port=8080/tcp --permanent
  1. 重启防火墙
systemctl restart firewalld
  1. 进入/usr/local/apache-tomcat-8.5.51/bin目录,启动Tomcat
./startup.sh

image-20230620150242235

  1. 在Windows下打开浏览器访问Linux的8080端口

image-20230620150254764

  1. 进入bin目录下,关闭服务器。关闭服务器以后,浏览器不能再访问。
./shutdown.sh

image-20230620150316233

停止Tomcat

在Linux系统中,停止Tomcat服务的方式主要有两种:

1). 运行Tomcat提供的脚本文件

在Tomcat安装目录下有一个bin目录,这个目录中存放的是tomcat的运行脚本文件,其中有一个脚本就是用于停止tomcat服务的。

image-20230620150332171

我们可以切换到bin目录,并执行如下指令,来停止Tomcat服务:

sh shutdown.sh
./shutdown.sh

2). 结束Tomcat进程

我们可以先通过 ps -ef|grep tomcat 指令查看tomcat进程的信息,从进程信息中获取tomcat服务的进程号。然后通过kill -9 的形式,来杀死系统进程。

image-20230620150351093

通过上述的指令,我们可以获取到tomcat的进程号为 79947。接下来,我们就可以通过指令 ,来杀死tomcat的进程 :

kill -9 79947 

执行完上述指令之后,我们再访问Linux系统中的Tomcat,就访问不到了。

注意:

kill命令是Linux提供的用于结束进程的命令,-9表示强制结束

注意 :

虽然上述讲解的两种方式,都可以停止Tomcat服务,但是推荐使用第一种方式(./shutdown.sh)执行脚本来关闭tomcat服务,如果通过第一种方式停止不了tomcat了,这个时候,我们可以考虑使用第二种方式,强制杀死进程。

小结

**tomcat安装步骤:**

1. 解压
		2. 开放8080端口
  			3. 启动tomcat

安装MySQL

MySQL安装

对于MySQL数据库的安装,我们将要使用前面讲解的第二种安装方式rpm进行安装。那么首先我们先了解一下什么rpm?

RPM:全称为 Red-Hat Package Manager,RPM软件包管理器(相当于windows的软件管家),是红帽Linux用于管理和安装软件的工具。

我们要通过rpm,进行MySQL数据库的安装,主要的步骤如下:

1). 检测当前系统是否安装过MySQL相关数据库

需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:

rpm -qa							查询当前系统中安装的所有软件
rpm -qa | grep mysql			查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb			查询当前系统中安装的名称带mariadb的软件

通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。

image-20230620150410114

通过查询,我们发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。

2). 卸载现有的MySQL数据库

在rpm中,卸载软件的语法为:

rpm -e --nodeps  软件名称

那么,我们就可以通过指令,卸载 mariadb,具体指令为:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

image-20230620150441789

我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。

3). 将资料中提供的MySQL安装包上传到Linux并解压

A. 上传MySQL安装包

在课程资料中,提供的有MySQL的安装包 ,我们需要将该安装包上传到Linux系统的根目录 / 下面。

image-20230620150457139

B. 解压到/usr/local/mysql

执行如下指令:

cd /soft
mkdir mysql
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz  -C ./mysql

cd /soft/mysql

image-20230620150527733

4). 安装顺序安装rpm安装包

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

说明:

  • 因为rpm安装方式,是不会自动处理依赖关系的,需要我们自己处理,所以对于上面的rpm包的安装顺序不能随意修改。
  • 安装过程中提示缺少net-tools依赖,使用yum安装(yum是一种在线安装方式,需要保证联网)
  • 可以通过指令(yum update)升级现有软件及系统内核

image-20230620150538585

MySQL启动

MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql。

systemctl status mysqld		查看mysql服务状态
systemctl start mysqld		启动mysql服务
systemctl stop mysqld		停止mysql服务

image-20230620150550708

说明:

可以设置开机时启动mysql服务,避免每次开机启动mysql。执行如下指令:

systemctl enable mysqld

我们可以通过如下方式,来判定mysql是否启动:

ps –ef | grep mysql				查看mysql进程
`<font color='red'>`B. ps命令用于查看Linux中的进程数据。`</font>`

MySQL登录

查阅临时密码

MySQL启动起来之后,我们就可以测试一下登录操作,但是我们要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,那这个访问密码是多少呢? 那实际上,对于rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,我们可以查看这份日志文件,从而获取到访问密码。

可以执行如下指令:

1). cat /var/log/mysqld.log

image-20230620150605747

这种方式,可以看到所有的日志数据,文件比较大时,很不方便查看数据。我们可以通过管道符 | 配合grep来对数据进行过滤。

2). cat /var/log/mysqld.log | grep password

我们可以通过上述指令,查询日志文件内容中包含password的行信息。

image-20230620150617425

登录MySQL

获取到root用户的临时密码之后,我们就可以登录mysql数据库,修改root的密码,为root设置一个新的密码。并且我们还需要开启root用户远程访问该数据库的权限,这样的话,我们就可以在windows上来访问这台MySQL数据库。

执行如下指令:

①. 登录mysql(复制日志中的临时密码登录)
	mysql -uroot -p							

②. 修改密码
    set global validate_password_length=4;			设置密码长度最低位数
    set global validate_password_policy=LOW;		设置密码安全等级低,便于密码可以修改成root
    set password = password('root');				设置密码为root
  
③. 开启访问权限(允许外界可以远程连接mysql,默认只能是本机连接)
    grant all on *.* to 'root'@'%' identified by 'root';
    flush privileges;

操作完上述的指令之后,数据库root用户的密码以及远程访问我们就配置好了,接下来,可以执行exit退出mysql,再次通过新的密码进行登录。

image-20230620150632548

注意: 要想在windows上能够访问MySQL,还需要开放防火墙的3306端口,执行如下指令:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

image-20230620150706226

当然我们也可以使用安装在windows系统中的sqlyog或者Navicat来远程连接linux上的MySQL。

image-20230620150720006

小结

安装mysql的步骤小结:
1. 卸载原本的mysql
2. 解压
3. 安装
4. 开启mysqld的服务
5. 登录,查找你初始化密码/var/log/mysqld.log
6. 修改密码
7. 授权允许root用户在任意地址都可以登录
8. 开放3306端口
9. 使用windows的小海豚链接。

项目部署

之前我们讲解Linux操作系统时,就提到,我们服务端开发工程师学习Linux系统的目的就是将来我们开发的项目绝大部分情况下都需要部署在Linux系统中。那么在本章节,我们将通过两种方式,来演示项目部署,分别是:手动部署项目 和 基于shell脚本自动部署。

手动部署项目

**1). 在IDEA中将web项目打包

打包war包前需要将连接mysql的IP地址 改成虚拟机的Ip地址

  1. 前端页面和mysql数据库准备好

3)在docker中安装好mysql

docker run -id -p 3307:3306 --name=mysql01 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

将我们的sql脚本在安装好的mysql中执行

1.docker cp goods.sql mysql容器id:/

2.docker exec -it mysql容器编号 /bin/bash

3.mysql -uroot -p123456

4.use ssm_car; 看看有没有库

5.source goods.sql; 执行脚本

查看是否成功 show tables;

就可以了

4)在docker中安装好tomcat 将打包好的war包发送到tomcat 的 webapps

docker run --privileged=true -id -p 8080:8080 -v $PWD/website:/usr/local/tomcat/webapps --name=tomcat01 tomcat

5)在docker中安装好Nginx 将静态资源存到nginx的/usr/share/nginx/html

docker run -id --name=nginx003 -p 8088:80 -v $PWD/nginx/html:/usr/share/nginx/html $PWD/nginx/conf:/etc/nginx/conf

$PWD/nginx/logs:/var/log/nginx

nginx

前端页面中的内容见附件

posted @ 2023-08-11 14:52  YxinHaaa  阅读(26)  评论(0编辑  收藏  举报