标签搜索

Linux服务器相关软件安装汇总

lilymaxyz
2024-09-20 / 0 评论 / 2 阅读 / 正在检测是否收录...

@TOC

一、Linux防火墙配置

1.1.关闭防火墙

# 关闭防火墙
systemctl stop firewalld.service

# 禁止防火墙开机启动
systemctl disable firewalld.service

1.2.放行80端口

# 放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload

在这里插入图片描述
在这里插入图片描述

1.3.开启防火墙

systemctl start firewalld

1.4.重启防火墙

systemctl restart firewalld

在这里插入图片描述

1.5.重载规则

firewall-cmd --reload

在这里插入图片描述

1.6.查看已配置规则

firewall-cmd --list-all

在这里插入图片描述

1.7.指定端口和ip访问

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.229.136" port protocol="tcp" port="8080" accept"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.8.移除规则

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.229.136" port protocol="tcp" port="8080" accept"

在这里插入图片描述

1.9.查询防火墙中指定的端口是否开放

firewall-cmd --query-port=9002/tcp

在这里插入图片描述

1.10.开放一个指定的端口9002

# --add-port=9002/tcp,表示添加指定9002端口,格式为:端口/通讯协议
# --permanent表示设置为持久
# --zone  表示作用域
firewall-cmd --zone=public --add-port=9002/tcp --permanent

# 重新加载防火墙
firewall-cmd --reload

# 再次查询开放端口
firewall-cmd --list-ports

在这里插入图片描述

1.11.批量添加开放端口

# --add-port表示添加指定端口
# --permanent表示设置为持久
firewall-cmd --zone=public --add-port=9001-9003/tcp --permanent

# 重新加载防火墙
firewall-cmd --reload

# 再次查询开放端口
firewall-cmd --list-ports

在这里插入图片描述

1.12移除一个指定的端口9002

# --remove-port表示移除指定端口
firewall-cmd --zone=public --remove-port=9002/tcp --permanent

# 重新加载防火墙
firewall-cmd --reload

# 再次查询开放端口
firewall-cmd --list-ports

在这里插入图片描述

@TOC

二、Linux配置静态上网

2.1.配置上网

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="aaf96f45-f242-4717-8c4b-86b751cd72e6"
DEVICE="ens33"

# 修改ONBOOT="yes"
ONBOOT="yes"
# 重启网络服务
systemctl restart network
# 测试
ping qq.com

在这里插入图片描述

2.2.配置静态IP

之前的网络配置是使用dhcp方式分配ip地址,这种方式会在系统每次联网的时候分配一个ip给我们用,也就是说有可能系统下次启动的时候ip会变,这样非常不方便我们管理。

  • 配置静态ip首先需要打开网卡配置文件
  • 修改完成后,重启测试即可--查看配置上网测试
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"

# 修改dhcp为static
BOOTPROTO="static"

DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="aaf96f45-f242-4717-8c4b-86b751cd72e6"
DEVICE="ens33"
ONBOOT="yes"

# 手动配置ip地址,添加以下配置
# ip addr 命令获取ip地址
IPADDR="192.168.229.136"
NETMASK="255.255.255.0"
# 网关获取如下
GATEWAY="192.168.229.2"
DNS1="8.8.8.8"
# 重启网络服务
systemctl restart network
# 测试
ping qq.com

在这里插入图片描述
在这里插入图片描述

三、Linux下安装 Redis7【redis-7.2.4.tar.gz】

3.1.下载redis的安装包

官网下载:https://redis.io/download

历史版本:https://download.redis.io/releases/

3.1.1.手动下载Redis压缩包并上传【redis-7.2.4.tar.gz】

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.1.2.wget工具下载redis-7.2.4.tar.gz

# 安装wget工具
yum -y install wget

# 创建自己的redis文件夹
mkdir -p /redis/core

cd /redis/core

# 自己复制的链接地址
wget https://download.redis.io/releases/redis-7.2.4.tar.gz

1706075076616

3.2.将安装包进行解压缩

tar -zxf redis-7.2.4.tar.gz

3.3.进入redis的安装包

cd redis-7.2.4

在这里插入图片描述

3.4.检查是否有gcc 环境

gcc -v
# 首先安装编译需要的环境依赖
yum install gcc-c++

在这里插入图片描述

3.5.编译和安装并指定安装目录 make install PREFIX=/usr/local/redis

# 如果安装redis出现错误执行以下命令,需要清理源码目录后再次执行编译
make distclean
# PREFIX关键字的作用是编译的时候用于指定程序存放的路径,指定了redis必须存在  /usr/local/redis  目录
#方便后续的卸载,直接rm -rf /usr/local/redis 即可删除redis
make PREFIX=/usr/local/redis install
# 可执行文件存放在 /usr/local/bin  目录
# 库文件会存放在  /usr/local/lib  目录
# 配置文件会存放在/usr/local/etc目录
# 其他的资源文件会存放在 usr/local/share 目录
# 不建议,不方便后续卸载
make install

在这里插入图片描述

3.5.拷贝redis配置文件redis.conf到/usr/local/redis目录中

# 查找redis.conf
find / -name redis.conf

# 将redis的源码目录中复制 redis.conf 到 redis 的安装目录
cp /redis/core/redis-7.2.4/redis.conf /usr/local/redis

1706075479597

3.6.redis的bin目录文件作用介绍

在这里插入图片描述

  • 可执行命令在/usr/local/bin 目录
  • redis-benchmark: 性能测试工具,可以在自己机器运行,看看自己机器性能如何
  • redis-check-aof:修复有问题的 AOF 文件,rdb 和 aof 后面讲
  • redis-check-rdb:修复有问题的 dump.rdb 文件
  • redis-sentinel:Redis 集群使用
  • redis-server:Redis 服务器启动命令
  • redis-cli:客户端,操作入口

3.7.修改redis.conf配置文件

requirepass 123456 # 开启redis验证,修改为自己的密码
protected-mode no #需要远程连接,设置为no,取消保护模式
#bind 127.0.0.1 # 允许redis远程连接,必须注释掉(注释或者改为bind 0.0.0.0) 
port  6379      #redis的端口
daemonize yes   #后台启动redis设置为yes,开启守护进程模式
appendonly yes  #开启redis数据持久化

在这里插入图片描述

3.8.重要的配置项

配置项名称配置项值范围说明
daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。
其中Windows系统下不支持启用守护进程方式运行
port 指定 Redis 监听端口,默认端口为 6379
bind 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下
或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,
所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
logleveldebug、verbose、notice、warning日志级别,默认为 notice
databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,
如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdb
dir 指定本地数据库存放目录
requirepass 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时
需要通过 AUTH 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis 可以同时
打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,
如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,
Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,
达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,
当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,
但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,
Value 会存放在 swap 区。配置项值范围列里XXX为数值。

3.9.验证redis是否成功安装

cd /usr/local/redis/bin/

./redis-server -v

./redis-cli -v

在这里插入图片描述

3.10.运行时出现以下警告

123156:C 23 Jan 2024 22:22:22.467 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
在这里插入图片描述
  • 原因:当前系统不允许超量申请内存空间
  • 解决:让当前系统允许超量申请内存空间
# 编辑sysctl.conf文件
vim /etc/sysctl.conf

#添加以下行,修改配置启用内存过度分配
vm.overcommit_memory = 1

#执行命令"sysctl -p" 或 重启系统,使配置生效
sysctl -p
# 或者使更改生效,运行以下命令
sysctl vm.overcommit_memory=1

# 验证更改是否已生效
cat /proc/sys/vm/overcommit_memory
# 返回1,则表示内存过度分配已成功启用

在这里插入图片描述
在这里插入图片描述

3.11.启动redis

cd /usr/local/redis

#进入redis安装目录,执行下面命令启动redis服务
./bin/redis-server redis.conf

# 查看 Redis 服务器进程
ps -ef | grep redis

在这里插入图片描述

3.12.启动redis-cli测试redis

cd /usr/local/redis

#进入redis安装目录,执行下面命令启动redis-cli
./bin/redis-cli

在这里插入图片描述

3.13.关闭 Redis 服务器

./bin/redis-cli shutdown

# 查看 Redis 服务器进程
ps -ef | grep redis

# kill -9 进程的PID
kill -9 27320

在这里插入图片描述
在这里插入图片描述

四、将redis设置成系统服务

4.1.创建redis服务文件

vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis Server
After=network.target

[Service]
Type=forking
# 配置成自己的路径
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
  • Description:服务描述
  • After:指定服务依赖的其他服务启动之后再启动
  • Type:指定服务的类型,这里设置为forking,表示服务以fork方式启动
  • ExecStart:指定服务的启动命令
  • ExecStop:指定服务的停止命令
  • Restart:指定服务在退出后是否自动重启
  • WantedBy:指定服务的启动级别

4.2.重新加载服务配置文件使之生效

# 重新加载服务配置文件
systemctl daemon-reload

4.3.服务操作命令

#启动redis服务
systemctl start redis

#停止redis服务
systemctl stop redis

#重新启动服务
systemctl restart redis

#查看服务当前状态
systemctl status redis

#设置开机自启动
systemctl enable redis

#停止开机自启动
systemctl disable redis

在这里插入图片描述

五、配置Redis环境变量

5.1.编辑环境变量配置文件

vim /etc/profile

5.2.文件末尾添加以下内容

# redis
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin/

在这里插入图片描述

5.3.保存并退出后,刷新配置信息

source /etc/profile

5.4.验证环境变量

redis-server -v
redis-cli -v

在这里插入图片描述
在这里插入图片描述

六、Nginx环境准备

6.1.Nginx版本

Nginx的官方网站为: http://nginx.org
Nginx的官方下载网站为http://nginx.org/en/download.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.获取Nginx源码

http://nginx.org/download/

打开上述网站,就可以查看到Nginx的所有版本,选中自己需要的版本进行下载。

在这里插入图片描述

6.3.准备服务器系统

6.3.1.环境准备

FinalShell SSH工具官网:http://www.hostbuf.com/
FinalShell SSH工具官网下载:http://www.hostbuf.com/t/988.html
Centos官网:https://www.centos.org/download/
MobaXterm官网:https://mobaxterm.mobatek.net/
MobaXterm官网下载:https://mobaxterm.mobatek.net/download.html

6.3.2.确认centos的内核

准备一个内核为2.6及以上版本的操作系统,因为linux2.6及以上内核才支持epoll,而Nginx需要解决高并发压力问题是需要用到epoll
# 查询linux的内核版本
uname -a

在这里插入图片描述

6.3.3.确保centos能联网

ping www.baidu.com

在这里插入图片描述
在这里插入图片描述

6.3.4.确认关闭防火墙

关闭的方式有如下两种:

# 关闭运行的防火墙,系统重新启动后,防火墙将重新打开
systemctl stop firewalld

# 永久关闭防火墙,,系统重新启动后,防火墙依然关闭 
systemctl disable firewalld

# 查看防火墙状态 
systemctl status firewalld

在这里插入图片描述

6.3.5.确认停用selinux

selinux(security-enhanced linux),美国安全局对于强制访问控制的实现,在linux2.6内核以后的版本中,selinux已经成功内核中的一部分。可以说selinux是linux史上最杰出的新安全子系统之一。虽然有了selinux,我们的系统会更安全,但是对于我们的学习Nginx的历程中,会多很多设置,所以这块建议大家将selinux进行关闭。

# 查看状态
sestatus

在这里插入图片描述

如果查看不是disabled状态,我们可以通过修改配置文件来进行设置,修改SELINUX=disabled,然后重启下系统即可生效。

vim /etc/selinux/config

# 重启系统
reboot

在这里插入图片描述

七、Nginx安装方式【源码安装和yum安装】

7.1.Nginx源码安装需要提前准备

7.1.1.GCC编译器

Nginx是使用C语言编写的程序,因此想要运行Nginx就需要安装一个编译工具。
GCC就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了C语言。
# 安装gcc
yum install -y gcc

# 查看gcc是否安装成功
gcc --version

7.1.2.PCRE

Nginx在编译过程中需要使用到PCRE库(perl Compatible Regular Expressoin 兼容正则表达式库),因为在Nginx的Rewrite模块和http核心模块都会使用到PCRE正则表达式语法。
# 安装 PCRE库
yum install -y pcre pcre-devel

rpm -qa pcre pcre-devel

7.1.3.zlib

zlib库提供了开发人员的压缩算法,在Nginx的各个模块中需要使用gzip压缩,所以我们也需要提前安装其库及源代码zlib和zlib-devel

yum install -y zlib zlib-devel

rpm -qa zlib zlib-devel

7.1.4.OpenSSL

  • OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。
  • SSL:Secure Sockets Layer安全套接协议的缩写,可以在Internet上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。-
  • 在Nginx中,如果服务器需要提供安全网页时就需要用到OpenSSL库,所以我们需要对OpenSSL的库文件及它的开发安装包进行一个安装。
yum install -y openssl openssl-devel

rpm -qa openssl openssl-devel

上述命令,一个个来的话比较麻烦,我们也可以通过一条命令来进行安装

# 一条命令来进行全部安装
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

gcc --version

rpm -qa pcre pcre-devel zlib zlib-devel openssl openssl-devel

7.1.5.警告时缺少安装包

安装gcc
yum -y install gcc
checking for OS 
+ Linux 3.10.0-693.el7.x86_64 x86_64 checking for C compiler ... not found 

./configure: error: C compiler cc is not found
安装perl库
yum install -y pcer-devl
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option. 
安装zlib库
yum install -y zlib zlib-devel
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module 
option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=<path> option. 

7.2.方案一:Nginx的源码安装

7.2.1.进入官网查找需要下载版本的链接地址,然后使用wget命令进行下载

yum -y install wget

wget http://nginx.org/download/nginx-1.24.0.tar.gz

在这里插入图片描述
在这里插入图片描述

7.2.2.将下载的资源进行包管理

mkdir -p /app/nginx/core

mv nginx-1.24.0.tar.gz /app/nginx/core

7.2.3.解压缩

cd /app/nginx/core
tar -zxvf nginx-1.24.0.tar.gz

7.2.4.进入资源文件中,发现configure

cd /app/nginx/core/nginx-1.24.0

在这里插入图片描述

7.2.5.指定编译参数,编译Nginx复杂安装

./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-stream

7.2.6.编译&安装

make & make install

在这里插入图片描述

7.2.7.启动Nginx

进入安装好的目录 /usr/local/nginx/sbin
cd /usr/local/nginx/sbin

./nginx -V 查看版本详细信息
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置

在这里插入图片描述
在这里插入图片描述

7.2.8.测试

在这里插入图片描述

7.3.方案二:yum安装【默认安装最新版】

官网:http://nginx.org/en/docs/install.html
RHEL and derivatives:http://nginx.org/en/linux_packages.html#RHEL

使用源码进行简单安装,我们会发现安装的过程比较繁琐,需要提前准备GCC编译器、PCRE兼容正则表达式库、zlib压缩库、OpenSSL安全通信的软件库包,然后才能进行Nginx的安装。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7.3.1.官方安装步骤

RHEL and derivatives:http://nginx.org/en/linux_packages.html#RHEL

在这里插入图片描述
RHEL and derivatives
This section applies to Red Hat Enterprise Linux and its derivatives such as CentOS, Oracle Linux, Rocky Linux, AlmaLinux.

Install the prerequisites:

sudo yum install yum-utils

To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

By default, the repository for stable nginx packages is used. If you would like to use mainline nginx packages, run the following command:

# 切换成主线版本,暂时不需要
sudo yum-config-manager --enable nginx-mainline

To install nginx, run the following command:

sudo yum install nginx

When prompted to accept the GPG key, verify that the fingerprint matches 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62, and if so, accept it.

7.3.2.安装yum-utils工具

sudo yum install -y yum-utils

7.3.3.添加yum源文件

vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

在这里插入图片描述

7.3.4.查看是否安装成功

yum list | grep nginx

在这里插入图片描述

7.3.5.使用yum进行安装

yum -y install nginx

在这里插入图片描述

7.3.6.查看nginx的安装位置

whereis nginx

在这里插入图片描述

7.3.7.启动测试

cd /usr/sbin

./nginx

在这里插入图片描述
在这里插入图片描述

7.4.卸载nginx

7.4.1.步骤一:需要将nginx的进程关闭

# 先看下nginx是否在运行中
ps  aux | grep nginx

# 如果在运行中,则停止
./nginx -s stop 或者直接杀死进程  pkill  nginx或  kill -9  进程号

7.4.2.步骤二:将安装的nginx进行删除

cd ~

# 找到所有nginx有关文件
find / -name nginx*

# 删除有关nginx的文件(linux中一切都文件)
rm -rf /usr/local/nginx

7.4.3.步骤三:将安装包之前编译的环境清除掉

cd /app/nginx/core/nginx-1.24.0
make clean

# 卸载nginx的有关依赖
yum  remove  nginx

在这里插入图片描述

八、Nginx目录结构分析

8.1.Nginx目录结构

# 安装tree工具展示目录结构
yum -y install tree

# 查看centos系统上的文件目录结构
tree /usr/local/nginx

# 显示所有文件和目录
tree /usr/local/nginx -a

在这里插入图片描述

8.2.nginx所有配置文件目录

[root@192 sbin]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf # 用来存放配置文件相关的
│   ├── fastcgi.conf # fastcgi相关配置文件
│   ├── fastcgi.conf.default # fastcgi.conf的备份文件

│   ├── fastcgi_params # fastcgi的参数文件
│   ├── fastcgi_params.default # fastcgi的参数备份文件

│   ├── koi-utf 
│   ├── koi-win

│   ├── mime.types # 媒体类型,记录的是HTTP协议中的Content-Type的值和文件后缀名的对应关系
│   ├── mime.types.default # mime.types的备份文件
│   ├── nginx.conf # 这个是Nginx的核心配置文件
│   ├── nginx.conf.default # nginx.conf的备份文件

│   ├── scgi_params # scgi的参数文件
│   ├── scgi_params.default # scgi的参数备份文件
│   ├── uwsgi_params # uwsgi的参数文件
│   ├── uwsgi_params.default # uwsgi的参数备份文件

│   └── win-utf # koi-utf、koi-win、win-utf这三个文件都是与编码转换映射相关的配置文件,用来将一种编码转换成另一种编码

├── fastcgi_temp
├── html # 存放nginx自带的两个静态的html页面
│   ├── 50x.html # 访问失败后的失败页面
│   └── index.html # 成功访问的默认首页
├── logs # 记录入门的文件,当nginx服务器启动后,这里面会有 access.log error.log 和nginx.pid三个文件出现
│   ├── access.log # 访问日志
│   ├── error.log # 错误日志
│   └── nginx.pid # nginx进程的PID
├── proxy_temp
├── sbin # nginx的主程序
│   └── nginx # nginx是用来控制Nginx的启动和停止等相关的命令
├── scgi_temp
└── uwsgi_temp
# 查看Nginx的PID
more /usr/local/nginx/logs/nginx.pid

# 查看日志
tail -f /usr/local/nginx/logs/access.log

tail -f /usr/local/nginx/logs/error.log

在这里插入图片描述

8.3.nginx.conf

Nginx的核心配置文件默认是放在/usr/local/nginx/conf/nginx.conf

vi /usr/local/nginx/conf/nginx.conf
worker_processes  1;

events { 
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server { 
        listen       80;
        server_name  localhost;
        
        location / { 
            root   html;
            index  index.html index.htm;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

8.4.Nginx基础配置文件nginx.conf 解读

# 指令名    指令值;  #全局块,主要设置Nginx服务器整体运行的配置指令
worker_processes  1;  # 默认为1,表示开启一个业务进程

# events块,主要设置,Nginx服务器与用户的网络连接,这一部分对Nginx服务器的性能影响较大
events { # 事件驱动模块
    accept_mutex on; #设置Nginx网络连接序列化,防止多个进程对连接的争抢
    multi_accept on; #设置Nginx的worker进程是否可以同时接收多个网络请求
    worker_connections 1024; # 设置Nginx单个worker进程最大的连接数
    use epoll; #设置Nginx使用的事件驱动模型,使用epoll函数来优化Ngin
}

# http块,是Nginx服务器配置中的重要部分,代理、缓存、日志记录、第三方模块配置...  
http {
    include       mime.types; # 引入http mime类型
    default_type  application/octet-stream; # 如果mime类型没有匹配上,默认使用二进制流的方式传输
    sendfile        on; # 使用limux的sendfile(socket,file,len)高效网络传输,也就是数据0拷贝
    tcp_nopush      on; # 主要是用来提升网络包的传输效率
    tcp_nodelay     on; # 提高网络包传输的实时性
    keepalive_timeout  65;
    
    include nginx_gzip.conf;

    # server块,是Nginx配置和虚拟主机vhost相关的内容
    server { # 虚拟主机配置
        listen       80; # 监听端口号80
        server_name  localhost; # 域名、主机名
        #  location块,基于Nginx服务器接收请求字符串与location后面的值进行匹配,对特定请求进行处理
        location / { # 匹配路径
            root   html; # 文件根目录
            index  index.html index.htm; # 默认页名称
        }
        error_page   500 502 503 504  /50x.html; # 报编码错误对应页面
        location = /50x.html {
            root   html;
        }
    }

}

nginx_gzip.conf

# Gzip压缩功能的实例配置
gzip on;                #开启gzip功能
gzip_types *;          #压缩源文件类型,根据具体的访问资源类型设定
gzip_comp_level 6;      #gzip压缩级别
gzip_min_length 1024; #进行压缩响应页面的最小长度,content-length
gzip_buffers 4 16K;      #缓存空间大小
gzip_http_version 1.1; #指定压缩响应所需要的最低HTTP请求版本
gzip_vary  on;          #往头信息中添加压缩标识
gzip_disable "MSIE [1-6]\."; #对IE6以下的版本都不进行压缩
gzip_proxied  off; #nginx作为反向代理压缩服务端返回数据的条件
gzip on;
gzip_types *;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_buffers 4 16K;
gzip_http_version 1.1;
gzip_vary  on;
gzip_disable "MSIE [1-6]\.";
gzip_proxied  off;

九、Nginx服务器版本升级和新增模块

需求:Nginx的版本最开始使用的是nginx-1.22.1,由于服务升级,需要将Nginx的版本升级到nginx-1.24.0,要求Nginx不能中断提供服务。

为了应对上述的需求,这里我们给大家提供两种解决方案:

方案一:使用Nginx服务信号完成Nginx的升级

方案二:使用Nginx安装目录的make命令完成升级

9.1.环境准备

9.1.1.先准备两个版本的Nginx分别是 1.22.1和1.24.0

在这里插入图片描述

9.1.2.使用Nginx源码安装的方式将1.22.1版本安装成功并正确访问

# 进入安装目录,指定编译参数,按照自己需求
./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-stream
make && make install

在这里插入图片描述

在这里插入图片描述

9.1.3.将Nginx1.24.0进行参数配置和编译,不需要进行安装。

# 进入安装目录,指定编译参数,按照自己需求
./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-stream
# 不需要进行安装,直接make
make

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.2.方案一:使用Nginx服务信号进行升级

9.2.1.将1.22.1版本的sbin目录下的nginx进行备份

cd /usr/local/nginx/sbin

mv nginx nginxold

在这里插入图片描述

9.2.2.将Nginx1.24.0安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下

cd /nginx/core/nginx-1.24.0/objs

cp nginx /usr/local/nginx/sbin

在这里插入图片描述

9.2.3.发送信号USR2给Nginx的1.22.1版本对应的master进程

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

在这里插入图片描述

9.2.4.发送信号QUIT给Nginx的1.22.1版本对应的master进程

kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`

在这里插入图片描述

9.3.方案二:使用Nginx安装目录的make upgrade命令完成升级

9.3.1.将1.22.1版本的sbin目录下的nginx进行备份

cd /usr/local/nginx/sbin

mv nginx nginxold

在这里插入图片描述

9.3.2.将Nginx1.24.0安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下

cd /nginx/core/nginx-1.24.0/objs

cp nginx /usr/local/nginx/sbin

在这里插入图片描述

9.3.3.进入到安装目录,执行make upgrade

make upgrade

在这里插入图片描述

9.3.4.查看是否更新成功

cd /usr/local/nginx/sbin

./nginx -v

在这里插入图片描述

十、Nginx安装成系统服务

10.1.创建脚本

vi /usr/lib/systemd/system/nginx.service

10.2.服务脚本内容

[Unit]
Description=nginx web service
Documentation=http://nginx.org/en/docs/
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=default.target
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式ExecStartpre是检查配置文件
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

10.3.进行权限设置

chmod 755 /usr/lib/systemd/system/nginx.service

10.4.开机启动

# 重新加载系统服务
systemctl daemon-reload

# 启动服务
systemctl start nginx

#停止
systemctl stop nginx

#重启
systemctl restart nginx

#重新加载配置文件
systemctl reload nginx

# 查看nginx状态
systemctl status nginx

# 开机启动
systemctl enable nginx.service

# 查看nginx是否启动
ps -ef | grep nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十一、Linux下安装openresty

11.1.概述

OpenResty是由淘宝工程师开发的,所以其官方网站(http://openresty.org/)我们读起来是非常的方便。OpenResty是一个基于Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。所以本身OpenResty内部就已经集成了Nginx和Lua,所以我们使用起来会更加方便。

11.2.下载OpenResty并安装相关依赖:

https://openresty.org/download/openresty-1.25.3.1.tar.gz
# 安装相关依赖
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

# 查询版本信息
gcc --version

# 查询是否安装成功
rpm -qa pcre pcre-devel zlib zlib-devel openssl openssl-devel

在这里插入图片描述

11.3.使用wget下载:

# 创建包管理
mkdir -p /openresty/core

cd /openresty/core

wget https://openresty.org/download/openresty-1.25.3.1.tar.gz

在这里插入图片描述

11.4.解压缩:

tar -zxf openresty-1.25.3.1.tar.gz

11.5.进入OpenResty目录:

cd openresty-1.25.3.1

在这里插入图片描述

11.6.编译和安装

./configure

make && make install
cd nginx-1.25.3
sh ./configure --prefix=/usr/local/openresty/nginx \
  --with-cc-opt='-O2' \
  --add-module=../ngx_devel_kit-0.3.3 \
  --add-module=../echo-nginx-module-0.63 \
  --add-module=../xss-nginx-module-0.06 \
  --add-module=../ngx_coolkit-0.2 \
  --add-module=../set-misc-nginx-module-0.33 \
  --add-module=../form-input-nginx-module-0.12 \
  --add-module=../encrypted-session-nginx-module-0.09 \
  --add-module=../srcache-nginx-module-0.33 \
  --add-module=../ngx_lua-0.10.26 \
  --add-module=../ngx_lua_upstream-0.07 \
  --add-module=../headers-more-nginx-module-0.37 \
  --add-module=../array-var-nginx-module-0.06 \
  --add-module=../memc-nginx-module-0.20 \
  --add-module=../redis2-nginx-module-0.15 \
  --add-module=../redis-nginx-module-0.3.9 \
  --add-module=../rds-json-nginx-module-0.16 \
  --add-module=../rds-csv-nginx-module-0.09 \
  --add-module=../ngx_stream_lua-0.0.14 \
  --with-ld-opt='-Wl,-rpath,/usr/local/openresty/luajit/lib' \
  --with-stream --without-pcre2 --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_ssl_module

在这里插入图片描述

11.7.进入OpenResty的目录,找到nginx:

cd /usr/local/openresty/nginx/

11.8.在sbin目录下启动nginx

在这里插入图片描述

11.9.通过浏览器访问测试【直接输入IP地址】

成功安装

在这里插入图片描述

11.10.设置环境变量

vim /etc/profile

# openresty
export PATH=$PATH:/usr/local/openresty/nginx/sbin

# 输入下面命令让设置的环境变量生效
source /etc/profile

# 查看版本信息
nginx -V

在这里插入图片描述

在这里插入图片描述

11.11.openresty安装成系统服务

# 创建脚本
vi /usr/lib/systemd/system/openresty.service

# 重新加载系统服务
systemctl daemon-reload

服务脚本内容

[Unit]
Description=openresty web service
Documentation=https://openresty.org/cn/
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -c /usr/local/openresty/nginx/conf/nginx.conf
ExecStart=/usr/local/openresty/nginx/sbin/nginx
ExecReload=/usr/local/openresty/nginx/sbin/nginx -s reload
ExecStop=/usr/local/openresty/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=default.target
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式ExecStartpre是检查配置文件
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

11.12.openresty常用命令

# 启动服务
systemctl start openresty

#停止
systemctl stop openresty

#重启
systemctl restart openresty

#重新加载配置文件
systemctl reload openresty

# 查看nginx状态
systemctl status openresty

# 开机启动
systemctl enable openresty.service

# 查看nginx是否启动
ps -ef | grep openresty

在这里插入图片描述

十二、linux下安装jdk

12.1.下载Linux版本的JDK

JDK17官网下载:https://www.oracle.com/java/technologies/downloads/#java17

JDK8官网下载:https://www.oracle.com/java/technologies/downloads/#java8-linux
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.2.Linux安装JDk

#在usr目录下新建Java目录,然后将下载的JDK拷贝到这个新建的Java目录中
mkdir -p /usr/java

# 进入该文件夹
cd /usr/java

# 解压
tar -zxvf jdk-8u391-linux-x64.tar.gz

#重命名
mv jdk1.8.0_391 jdk1.8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.3.设置环境变量

vim /etc/profile
shift+g快速将光标定位到最后一行,然后按“i”,再输入下面环境变量
#set java environment

JAVA_HOME=/usr/java/jdk1.8

CLASSPATH=$JAVA_HOME/lib

PATH=$PATH:$JAVA_HOME/bin

export PHTH JAVA_HOME CLASSPATH
# 输入下面命令让设置的环境变量生效
source /etc/profile

# 验证JDK是否安装成功
java -version

在这里插入图片描述
在这里插入图片描述

12.4.卸载JDK

# 查看Linux是否有安装JDK
java-version

# 列出所有已经被安装的,名字中包含jdk字符串的RPM包
rpm -qa | grep jdk
# rpm -q 查询rpm package name的包是否被安装
# rpm -a列出所有已经安装的rpm package软件包
# | 表示将输出结果(字符串)转向到后面的命令处理
# grep jdk 表示在当前结果中搜索包含jdk字样的字符串

# 查看JDK版本信息
java -version

# 查看JDK安装路径
which java

# 卸载JDk
rm -rf /usr/java/jdk1.8

# 删除java相关环境变量
vim /etc/profile

# 让环境变量生效
source /etc/profile

在这里插入图片描述

十三、linux下安装tomcat

13.1.下载Linux版本的Tomcat

官网下载地址:https://tomcat.apache.org/download-80.cgi
在这里插入图片描述
在这里插入图片描述

13.2.在usr目录下新建tomcat目录

将下载的tomcat拷贝到新建的tomcat目录中,fialshell工具可以直接拖动tomcat安装包到tomcat中
mkdir -p /usr/tomcat

13.3.进入到tomcat目录中解压下载的tomcat安装包

cd /usr/tomcat

ls -l

tar -zxvf apache-tomcat-8.5.98.tar.gz

在这里插入图片描述
给解压后的文件夹重新命名

mv apache-tomcat-8.5.98 tomcat8.5

在这里插入图片描述

13.4.配置环境变量-前提是已经安装并配置好了JDK

vim /etc/profile
shift+g快速将光标定位到最后一行,然后按i,再输入下面配置
CATALINA_HOME=/usr/tomcat/tomcat8.5

在这里插入图片描述

# 让环境变量生效
source /etc/profile

13.5.启动tomcat

13.5.1.方法一:进入到/usr/tomcat/tomcat8.5/bin目录

# 进入到当前bin目录
cd /usr/tomcat/tomcat8.5/bin

# 启动
./startup.sh

# 关闭
./shutdown.sh

在这里插入图片描述

13.5.2.方法二:无论在哪个目录都可以启动tomcat

# 启动
sh /usr/tomcat/tomcat8.5/bin/startup.sh
# 关闭
sh /usr/tomcat/tomcat8.5/bin/shutdown.sh

在这里插入图片描述

13.5.3.查看tomcat是否启动成功

ps -ef | grep tomcat

在这里插入图片描述

13.6.验证tomcat是否安装成功

Linux启动tomcat后,我们在浏览器中输入:http:\IP地址:8080 如果出现tomcat的主页则代表安装成功
http://192.168.229.139:8080/

在这里插入图片描述

13.7.阿里云 linux tomcat 无法访问方法

阿里云服务器防火墙没有放开8080端口

在这里插入图片描述

Linux 命令行防火墙 设置端口打开
#查看当前已经开放的端口
firewall-cmd --list-ports

#以下命令添加指定端口8080让防火墙放行
firewall-cmd --zone=public --add-port=8080/tcp --permanent

#添加成功后需要用firewall-cmd --reload 命令重载一下firewall服务才能生效
firewall-cmd --reload

在这里插入图片描述

在这里插入图片描述

十四、Linux下安装Mysql-5.7.41【tar包下载安装】

14.1.首先检查是否已经安装过mysql

rpm -qa | grep mysql

14.2.下载Linux版本的Mysql-5.7

Mysql官网:https://www.mysql.com/

下载网址:https://downloads.mysql.com/archives/community/

cat /etc/redhat-release

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.3.解压缩

首先使用第三方工具上传
# 创建一个文件夹,存放mysql
mkdir -p /usr/mysql

cd /usr/mysql

# 在当前目录下(mysql)下创建一个 mysql-5.7.41 文件夹
mkdir mysql-5.7.41

# 解压安装包到该目录下
tar -xvf mysql-5.7.41-1.el7.x86_64.rpm-bundle.tar -C mysql-5.7.41

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@localhost mysql-5.7.41]# ls
mysql-community-client-5.7.41-1.el7.x86_64.rpm    
mysql-community-embedded-compat-5.7.41-1.el7.x86_64.rpm  
mysql-community-server-5.7.41-1.el7.x86_64.rpm
mysql-community-common-5.7.41-1.el7.x86_64.rpm    
mysql-community-embedded-devel-5.7.41-1.el7.x86_64.rpm   
mysql-community-test-5.7.41-1.el7.x86_64.rpm
mysql-community-devel-5.7.41-1.el7.x86_64.rpm     
mysql-community-libs-5.7.41-1.el7.x86_64.rpm
mysql-community-embedded-5.7.41-1.el7.x86_64.rpm  
mysql-community-libs-compat-5.7.41-1.el7.x86_64.rpm

14.4.安装执行 rpm 安装包需要先下载 openssl-devel 插件

解压后的文件都是 rpm 文件,因此需要用到 rpm 包资源管理器相关的指令安装这些 rpm 的安装包
yum install openssl-devel

14.5.安装 Mysql5.7 执行 rpm 安装包

安装完该插件之后,依次执行以下命令安装这些 rpm 包
yum install openssl-devel

rpm -ivh mysql-community-common-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.41-1.el7.x86_64.rpm

yum remove mysql-libs 

rpm -ivh mysql-community-libs-compat-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.41-1.el7.x86_64.rpm

# 至此所有依赖已安装完毕,下面安装客户端和服务端

rpm -ivh mysql-community-client-5.7.41-1.el7.x86_64.rpm
yum -y install net-tools
rpm -ivh mysql-community-server-5.7.41-1.el7.x86_64.rpm

# 查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# yum remove openssl-devel
# yum remove net-tools

在这里插入图片描述

问题1
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-libs-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-libs-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
        mysql-community-common(x86-64) >= 5.7.9 被 mysql-community-libs-5.7.41-1.el7.x86_64 需要
        mariadb-libs 被 mysql-community-libs-5.7.41-1.el7.x86_64 取代
解决方案1:清除之前安装过的依赖即可,最后重新安装下。
[root@localhost mysql-5.7.41]# yum remove mysql-libs 
问题2
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-server-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
        net-tools 被 mysql-community-server-5.7.41-1.el7.x86_64 需要
解决方案2:
yum -y install net-tools

在这里插入图片描述
在这里插入图片描述

[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-common-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-common-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-common-5.7.41-1.e################################# [100%]
[root@localhost mysql-5.7.41]# 
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-libs-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-libs-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-libs-5.7.41-1.el7################################# [100%]
[root@localhost mysql-5.7.41]# 
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-libs-compat-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-libs-compat-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-libs-compat-5.7.4################################# [100%]
[root@localhost mysql-5.7.41]# 
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-devel-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-devel-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-devel-5.7.41-1.el################################# [100%]
[root@localhost mysql-5.7.41]# 
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-client-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-client-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-client-5.7.41-1.e################################# [100%]
[root@localhost mysql-5.7.41]# 
[root@localhost mysql-5.7.41]# rpm -ivh mysql-community-server-5.7.41-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.41-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-server-5.7.41-1.e################################# [100%]

在这里插入图片描述

14.6.Mysql相关操作命令

# 启动 MySQL 服务
systemctl start mysqld

# 重启 MySQL 服务
systemctl restart mysqld

# 关闭 MySQL 服务
systemctl stop mysqld

#设置开机自启
systemctl enable mysqld

# 查看状态
systemctl status mysqld

在这里插入图片描述
在这里插入图片描述

14.7.查看Mysql-5.7 临时密码

rpm 安装 MySQL 会自动生成一个随机密码
grep 'temporary password' /var/log/mysqld.log

cat /var/log/mysqld.log
A temporary password is generated for root@localhost: 2yiNb5Pvum<4
账号:root
随机密码:2yiNb5Pvum<4
在这里插入图片描述

14.8.修改Mysql-5.7密码

# 登录
mysql -u root -p
2yiNb5Pvum<4

# 修改密码
ALTER  USER  'root'@'localhost'  IDENTIFIED BY '123456';

ALTER  USER  'root'@'localhost'  IDENTIFIED BY 'Mysql.123456';

# 设置密码的验证强度等级
#Mysql 5.7 版本
# 将密码复杂度校验调整简单类型
# set global validate_password_policy=MEDIUM;
set global validate_password_policy=LOW;
# 设置密码最少位数限制为 4 位
set global validate_password_length=4;
# 查看 mysql 初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

# 查看 mysql5.7 初始的密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| 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      |
+--------------------------------------+--------+

在这里插入图片描述
在这里插入图片描述

14.9.远程连接navicat--遇见问题

14.9.1.问题:1130 - Host '192.168.229.1' is not allowed to connect to this MySQL server

自己安装在本地的mysql默认时不允许进行远程登陆,如果想要远程访问本地的数据库需要修改访问权限,将’root‘访问权限修改为’%‘
在这里插入图片描述

14.9.2.连接服务器--修改权限

# 连接服务器
mysql -u root -p

# 看当前所有数据库
show databases;

# 进入mysql数据库
use mysql;

# 查看mysql数据库中所有的表
show tables;

# 执行更新权限语句
# 其中“%”代表所有的地址,意味着所有的地址都可以访问“root”
update user set Host='%' where User='root';

# 查看权限是否修改成功
select host,user from user;

# 刷新服务器配置
FLUSH PRIVILEGES;

在这里插入图片描述
在这里插入图片描述

14.9.3.连接成功

在这里插入图片描述

14.10.卸载Mysql-5.7

# 停止Mysql
systemctl stop mysqld

# 查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# 卸载上述查询的所有安装包
rpm -e mysql-community-libs-5.7.41-1.el7.x86_64 --nodeps
rpm -e mysql-community-devel-5.7.41-1.el7.x86_64 --nodeps
rpm -e mysql-community-common-5.7.41-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-compat-5.7.41-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-5.7.41-1.el7.x86_64 --nodeps
rpm -e mysql-community-server-5.7.41-1.el7.x86_64 --nodeps

# 再次查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# 删除MySQL的数据存放目录
rm -rf /var/lib/mysql

# 找出服务器中分散的mysql文件夹,查询残留的文件和相关依赖,并删除
find / -name mysql 
rm -rf [显示的文件夹路径,每个绝对路径中间用空格隔开]

# MySQL配置文件通常位于/etc/my.cnf或/etc/mysql/my.cnf下,MySQL日志文件通常位于/var/log/mysql下
# 删除mysql日志
rm -rf /var/log/mysqld.log
# 删除MySQL的配置文件备份
rm -rf /etc/my.cnf.rpmsave
# 删除mysql配置文件
rm -rf /etc/mysql/my.cnf
rm -rf /etc/my.cnf

# 清除MySQL用户和组
userdel mysql
groupdel mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

十五、Linux下安装Mysql-8.0.34【tar包下载安装】

15.1.首先检查是否已经安装过mysql

rpm -qa | grep mysql

15.2.下载Linux版本的Mysql-8.0.34

Mysql官网:https://www.mysql.com/

下载网址:https://downloads.mysql.com/archives/community/

cat /etc/redhat-release

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.3.解压缩

首先使用第三方工具上传
# 创建一个文件夹,存放mysql
mkdir -p /usr/mysql

cd /usr/mysql

# 在当前目录下(mysql)下创建一个 mysql-5.7.41 文件夹
mkdir mysql-8.0.34

# 解压安装包到该目录下
tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.34

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@localhost mysql-8.0.34]# ls
mysql-community-client-8.0.34-1.el7.x86_64.rpm          
mysql-community-debuginfo-8.0.34-1.el7.x86_64.rpm        
mysql-community-icu-data-files-8.0.34-1.el7.x86_64.rpm  
mysql-community-server-8.0.34-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm  
mysql-community-devel-8.0.34-1.el7.x86_64.rpm            
mysql-community-libs-8.0.34-1.el7.x86_64.rpm            
mysql-community-server-debug-8.0.34-1.el7.x86_64.rpm
mysql-community-common-8.0.34-1.el7.x86_64.rpm          
mysql-community-embedded-compat-8.0.34-1.el7.x86_64.rpm  
mysql-community-libs-compat-8.0.34-1.el7.x86_64.rpm     
mysql-community-test-8.0.34-1.el7.x86_64.rpm

15.4.安装执行 rpm 安装包需要先下载 openssl-devel 插件

解压后的文件都是 rpm 文件,因此需要用到 rpm 包资源管理器相关的指令安装这些 rpm 的安装包
yum install openssl-devel

在这里插入图片描述

15.5.安装 Mysql8.0 执行 rpm 安装包

安装完该插件之后,依次执行以下命令安装这些 rpm 包
yum install openssl-devel
# yum install net-tools

rpm -ivh mysql-community-common-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.34-1.el7.x86_64.rpm

# 至此所有依赖已安装完毕,下面安装客户端和服务端

rpm -ivh mysql-community-client-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.34-1.el7.x86_64.rpm

# 查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# yum remove openssl-devel
# yum remove net-tools

在这里插入图片描述

15.6.Mysql相关操作命令

# 启动 MySQL 服务
systemctl start mysqld

# 重启 MySQL 服务
systemctl restart mysqld

# 关闭 MySQL 服务
systemctl stop mysqld

#设置开机自启
systemctl enable mysqld

# 查看状态
systemctl status mysqld

在这里插入图片描述

15.7.查看Mysql-8.0 临时密码

rpm 安装 MySQL 会自动生成一个随机密码
grep 'temporary password' /var/log/mysqld.log

cat /var/log/mysqld.log
A temporary password is generated for root@localhost: ij9uN+hmchw2
账号:root
随机密码:ij9uN+hmchw2

在这里插入图片描述

15.8.修改Mysql-8.0 密码

# 登录
mysql -u root -p
ij9uN+hmchw2

# 修改密码
ALTER  USER  'root'@'localhost'  IDENTIFIED BY '123456';

ALTER  USER  'root'@'localhost'  IDENTIFIED BY 'Mysql.123456';

# 设置密码的验证强度等级
#Mysql 8.0 版本
# 将密码复杂度校验调整简单类型
# set global validate_password.policy=MEDIUM;
set global validate_password.policy=LOW;
# 设置密码最少位数限制为 4 位
set global validate_password.length=4;
# 查看 mysql 初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';
mysql> SHOW VARIABLES LIKE 'validate_password%';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

提示ERROR 1820,让我们先修改密码后才能查看规则。

# 查看 mysql8.0 初始的密码策略
mysql> ALTER  USER  'root'@'localhost'  IDENTIFIED BY 'Mysql.123456';
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name                                   | Value  |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0      |
| 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      |
+-------------------------------------------------+--------+
8 rows in set (0.01 sec)

在这里插入图片描述

在这里插入图片描述

15.9.远程连接navicat--遇见问题

15.9.1.问题:1130 - Host '192.168.229.1' is not allowed to connect to this MySQL server

自己安装在本地的mysql默认时不允许进行远程登陆,如果想要远程访问本地的数据库需要修改访问权限,将’root‘访问权限修改为’%‘
在这里插入图片描述

15.9.2.连接服务器--修改权限

# 连接服务器
mysql -u root -p

# 看当前所有数据库
show databases;

# 进入mysql数据库
use mysql;

# 查看mysql数据库中所有的表
show tables;

# 执行更新权限语句
# 其中“%”代表所有的地址,意味着所有的地址都可以访问“root”
update user set Host='%' where User='root';

# 查看权限是否修改成功
select host,user from user;

# 刷新服务器配置
FLUSH PRIVILEGES;

在这里插入图片描述

15.9.3.连接成功

在这里插入图片描述

15.10.MySQL 8.0 配置mysql_native_password身份验证插件的password

方法一:

# 登录MySQL后输入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';

FLUSH PRIVILEGES;

方法二:

# 编辑my.cnf文件,更改默认的身份认证插件。
vi /etc/my.cnf

# 在[mysqld]中添加下边的代码
default_authentication_plugin=mysql_native_password

# 然后重启MySQL
service mysqld restart

15.11.卸载Mysql-8.0

# 停止Mysql
systemctl stop mysqld

# 查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# 卸载上述查询的所有安装包
rpm -e mysql-community-client-plugins-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-compat-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-server-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-common-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-devel-8.0.34-1.el7.x86_64 --nodeps
rpm -e mysql-community-icu-data-files-8.0.34-1.el7.x86_64 --nodeps


# 再次查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# 找出服务器中分散的mysql文件夹,查询残留的文件和相关依赖,并删除
find / -name mysql 
rm -rf [显示的文件夹路径,每个绝对路径中间用空格隔开]

# MySQL配置文件通常位于/etc/my.cnf或/etc/mysql/my.cnf下,MySQL日志文件通常位于/var/log/mysql下
# 删除mysql日志
rm -rf /var/log/mysqld.log
# 删除MySQL的配置文件备份
rm -rf /etc/my.cnf.rpmsave
# 删除mysql配置文件
rm -rf /etc/mysql/my.cnf
rm -rf /etc/my.cnf

# 清除MySQL用户和组
userdel mysql
groupdel mysql

在这里插入图片描述
在这里插入图片描述

十六、Linux下--yum源安装Mysql

16.1.进入Mysql官网获取yum源安装包【无需登录账号】

# linux8 yum源
https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm

# linux7 yum源
https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# linux6 yum源
https://dev.mysql.com/get/mysql80-community-release-el6-10.noarch.rpm

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

16.2.通过yum搜索命令查询mysql相关的包数据

yum list | grep mysql*

yum list mysql*

在这里插入图片描述

16.3.确保系统中已经安装了wget和rpm工具

# 确保系统中已经安装了wget和rpm工具
sudo yum install wget rpm

在这里插入图片描述

16.4.安装Mysql的yum源【centos7为例】

# linux8 yum源
wget https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm

# linux7 yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# linux6 yum源
wget https://dev.mysql.com/get/mysql80-community-release-el6-10.noarch.rpm

在这里插入图片描述

16.5.安装Mysql的yum源

cd /etc/yum.repos.d

rpm -ivh mysql80-community-release-el7-11.noarch.rpm

在这里插入图片描述

16.6.默认安装Mysql8.0,修改为Mysql5.7

vi mysql-community.repo

在这里插入图片描述
在这里插入图片描述

16.7.安装mysql-server

# 安装方式一
yum -y install mysql-community-server

# 安装方式二
# 安装MySQL服务器、MySQL客户端和MySQL依赖库
yum -y install mysql-server mysql mysql-libs

# 安装方式三
# 只想安装MySQL服务器
yum -y install mysql-server

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.8.启动mysql-server

# 查看Mysql版本信息
mysql --version

# 启动mysql
systemctl start mysqld

# 查看mysql状态信息
systemctl status mysqld

在这里插入图片描述
在这里插入图片描述

16.9.获取mysql-server初始登陆的密码

grep 'temporary password' /var/log/mysqld.log

cat /var/log/mysqld.log

在这里插入图片描述

16.10.其余同上

16.11.卸载mysql

# 停止MySQL服务
systemctl stop mysqld

# 查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# 删除已安装mysql
yum -y remove mysql80-community-release-el7-11.noarch
yum -y remove mysql-community-common-5.7.44-1.el7.x86_64
yum -y remove mysql-community-libs-compat-5.7.44-1.el7.x86_64
yum -y remove mysql-community-server-5.7.44-1.el7.x86_64
yum -y remove mysql-community-libs-5.7.44-1.el7.x86_64
yum -y remove mysql-community-client-5.7.44-1.el7.x86_64


# 查询 MySQL 的安装文件
rpm -qa | grep -i mysql

# 查看mysql相关的文件目录,并删除
find / -name mysql 
rm -rf [显示的文件夹路径,每个绝对路径中间用空格隔开]

# MySQL配置文件通常位于/etc/my.cnf或/etc/mysql/my.cnf下,MySQL日志文件通常位于/var/log/mysql下
# 删除mysql日志
rm -rf /var/log/mysqld.log
# 删除MySQL的配置文件备份
rm -rf /etc/my.cnf.rpmsave
# 删除mysql配置文件
rm -rf /etc/mysql/my.cnf
rm -rf /etc/my.cnf

# 清除MySQL用户和组
userdel mysql
groupdel mysql

cd ~
find / -name mysql*

在这里插入图片描述

16.12.Mysql的yum源仓库

http://repo.mysql.com/

16.13.配置MySQL的安全性

mysql_secure_installation
  • 重置root账号的密码
新密码,长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。特殊符号可以是()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/
  • 删除匿名用户账号
  • 禁止root账号远程登录
  • 删除test库以及对test库的访问权限
  • 重新加载授权表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十七、建库建表--字符集修改【防止插入中文报错】

linux中mysql5.7默认的字符集是latin1,在插入中文时会报错,通常是由于数据库字符集和字符串编码不匹配导致的。

所以一般在配置好mysql时需要修改字符集为utf8【又叫utfmb3,一般开发够用,一个字符用3个字节表示】

或者utfmb4【一个字符用4个字节表示,如果存储emoji表情,必须用utfmb4】

17.1.建库建表--指定字符集

show databases;

CREATE DATABASE IF NOT EXISTS school CHARACTER SET utf8mb4;

use school;

DROP TABLE IF EXISTS user; 
CREATE TABLE `user` (
  `id` int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(50) NOT NULL COMMENT '姓名'
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户表';

-- ALTER TABLE user AUTO_INCREMENT = 1;

INSERT INTO user (name) VALUES('张三'),('李四'),('lily');

select * from user;

-- 查询表结构
desc user;

-- 表级
show table status from school like '%use%';

-- 列级
show full columns from user;

-- 查询指定表的建表语句
show create table user;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

17.2.建库建表--不指定字符集

DROP TABLE IF EXISTS customer;
CREATE TABLE customer(
    id INT AUTO_INCREMENT,
    name VARCHAR(200),
    PRIMARY KEY(id)
);

INSERT INTO customer (id,name) VALUES(1,'张三'),(2,'李四'),(3,'lily');
# ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'NAME' at row 1

-- 表级
show table status from school like '%customer%';

-- 列级
show full columns from customer;

-- 查询指定表的建表语句
show create table customer;

在这里插入图片描述
在这里插入图片描述

17.3.当前MySQL 支持的字符集

show charset;

show char set;
mysql> show char set;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
| hp8      | HP West European                | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian           | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European            | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European     | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                    | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese                 | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese              | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew               | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                     | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean                   | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian                | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek                | greek_general_ci    |      1 |
| cp1250   | Windows Central European        | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish              | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode                   | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode                   | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                     | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak      | keybcs2_general_ci  |      1 |
| macce    | Mac Central European            | macce_general_ci    |      1 |
| macroman | Mac West European               | macroman_general_ci |      1 |
| cp852    | DOS Central European            | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic              | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic                | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode                  | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode                | utf16le_general_ci  |      4 |
| cp1256   | Windows Arabic                  | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic                  | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode                  | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset           | binary              |      1 |
| geostd8  | GEOSTD8 Georgian                | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese       | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese       | eucjpms_japanese_ci |      3 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.00 sec)

17.4.将表字符集设置为utf8

# 对新建表、列,新插入数据有效
alter database 数据库名 character set utf8 collate utf8_bin;

#将表字符集设置为utf8
alter table 表名 default character set utf8 collate utf8_bin;
alter table customer character set utf8;

#将想要插入中文的字段的字符集改为utf8
alter table 表名 change 列名 新列名 char(20) character set utf8;
alter table customer change name nikname char(20) character set utf8;

INSERT INTO customer (id,nikname) VALUES(1,'张三'),(2,'李四'),(3,'lily');

#查看表的字符集和字段的字符集
show create table customer;

在这里插入图片描述

17.5.数据库中查看MySQL状态

status;

在这里插入图片描述

17.6.查看当前数据库的字符集

show variables like "%server%";
show variables like '%char%';
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

mysql> show variables like "%server%";
+---------------------------------+--------------------------------------+
| Variable_name                   | Value                                |
+---------------------------------+--------------------------------------+
| character_set_server            | latin1                               |
| collation_server                | latin1_swedish_ci                    |
| innodb_ft_server_stopword_table |                                      |
| server_id                       | 1                                    |
| server_id_bits                  | 32                                   |
| server_uuid                     | 72c696aa-cee7-11ee-9fe1-000c29c833e8 |
+---------------------------------+--------------------------------------+
6 rows in set (0.00 sec)

# 默认是latin1

十八、修改Mysql字符集my.cnf【防止插入中文报错】

18.1.编辑my.cnf配置文件【永久修改字符集】

# 查找my.cnf配置文件
find / -name my.cnf

vi /etc/my.cnf

my.cnf内容添加

[client]
default_character_set=utf8
[mysqld]
default-storage-engine=INNODB
collation_server = utf8_general_ci
character_set_server = utf8

在这里插入图片描述

18.2.重启mysql

systemctl restart mysqld

show variables like "%server%";
show variables like '%char%';

在这里插入图片描述
在这里插入图片描述

十九、mysql5.7使用group by语句:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated

19.1.报错信息

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated 
column 'company.emp.ename' which is not functionally dependent on columns in GROUP BY clause; 
this is incompatible with sql_mode=only_full_group_by

19.2.原因分析

mysql 5.7以后默认启用sql_mode=only_full_group_by模式特性
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,
也就是说查出来的列必须在group by后面出现否则就会报错,或者这个字段出现在聚合函数里面。

19.3.解决方法

19.3.1.方法一:登录Mysql

--1.查看模式中是否有only_full_group_by
select @@global.sql_mode;
--2.删除only_full_group_by
set @@global.sql_mode 
='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> select @@global.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                                                                         |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

19.3.2.方法二:修改mysql的配置文件 /etc/my.cnf 或my.ini

在尾部添加以下内容,重新启动 mysql 即可

#Linux 用户
find / -name my.cnf

vi /etc/my.cnf

service restart mysqld
# 配置my.cnf或my.ini
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

二十、Mysql字符集my.cnf【完整版】

[client]
default_character_set=utf8
[mysqld]
# 表示永久表(permanent tables)的默认存储引擎
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
collation_server = utf8_general_ci
character_set_server = utf8

二十一、MySQL登录报错

21.1.问题

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

在这里插入图片描述

21.2.原因

MySQL服务器停止则重新启动即可

密码输入错误

21.3.解决方法--修改密码

21.3.1.加上登录时跳过权限检查

#Linux 用户
find / -name my.cnf

vi /etc/my.cnf

#在[mysqld]中添加skip-grant-tables(登录时跳过权限检查)
skip-grant-tables

在这里插入图片描述

21.3.2.修改密码

# 重启数据库
systemctl restart mysqld

# 登录mysql,回车即可
mysql -uroot -p

# 进入mysql数据库
use mysql;

# 查看权限是否修改成功
select host,user,plugin,authentication_string from user;

# 刷新服务器配置
FLUSH PRIVILEGES;

# 没有用户创建用户 可能需要刷新
create user 'root'@'localhost' identified by 'Mysql.123456';

# 执行更新权限语句
# 其中“%”代表所有的地址,意味着所有的地址都可以访问“root”
update user set Host='%' where User='root';

# 更改密码
update mysql.user set authentication_string ='Mysql.123456' where user="root";
# 更改密码
alter user 'root'@'localhost' identified by 'Mysql.123456';

# 刷新服务器配置
FLUSH PRIVILEGES;

exit

# 将my.cnf中的skip-grant-tables去除
vi /etc/my.cnf
# 重启数据库
systemctl restart mysqld

21.3.2.去掉登录时跳过权限检查

endl

0

评论

博主关闭了所有页面的评论