运维基础(下部)

运维基础【(下部)】

Linux 的网络基础

一、网络相关概述

1、网络发展
  • 信息传递
    • 远古时期,人们就通过简单的语言、壁画等方式交换信息
    • 千百年来,人们一直在用语言、图符、钟鼓、烟火、竹简、纸书等传递信息
    • 古代人的烽火狼烟、飞鸽传信、驿马邮递
    • 现代社会中,交通警的指挥手语、航海中的旗语等
    • 这些信息传递的基本方式都是依靠人们的视觉与听觉
  • 电的产生
    • 1831 年,法拉第制造出世界上最早的一台发电机
    • 1866 年,德国人西门子(Siemens)制成世界上第一台大功率发电机
    • 1837 年,美国人塞谬乐 · 莫乐斯成功地研制出世界上第一台电磁式电报机
    • 1844 年 5 月 24 日,莫尔斯在国会大厦联邦最高法院会议厅进行了 “用莫尔斯电码” 发出人类历史上的第一份电报,从而实现了长途电报通信
  • 网络诞生
    • 1957 年,前苏联发射了第一颗人造卫星,震惊了美国

    • 1958 年美国成立了国防部 高级研究计划署(APRA,Advanced Research Projects Agency),应对冷战形势,ARPA 是一个管理机构,没有实验室和科学家

      image-20221225145725331

    • 1969 年,ARPANET(阿帕网)开始联机,因此 1969 年被称为 Internet 元年

  • 网络分类(记忆)
    • 局域网(Local Area Network,LAN)是指范围在几百米到十几公里内办公楼群或校园内的计算机相互连接所构成的计算机网络。

    • 城域网(Metropolitan Area Network, MAN )所采用的技术基本上与局域网相类似,只是规模上要大一些。城域网既可以覆盖相距不远的几栋办公楼,也可以覆盖一个城。

    • 广域网(Wide Area Network,WAN)通常跨接很大的物理范围,如一个国家。

      除了上述的划分,网络还可以按照所有者分 为公网、私网是两种 Internet 的接入方式。公网接入方式:上网的计算机得到的 IP 地址是 Internet 上的非保留地址,公网的计算机和 Internet 上的其他计算机可随意相互访问。私网则反之。

2、IP 地址(重点)

IP 是英文 Internet Protocol 的缩写,意思是 “网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议

IP 地址类型分为:公有地址私有地址

公有地址

公有地址(Public address) 由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向 Inter NIC 提出申请的组织机构。通过它直接访问因特网。

私有地址(重点)

私有地址(Private address)属于非注册地址,专门为组织机构内部使用。以下列出留用的内部私有地址:1.0.0.0 - 255.255.255.255

A类 10.0.0.0 – 10.255.255.255

B类 172.16.0.0 – 172.31.255.255

C类 192.168.0.0 – 192.168.255.255

IP 地址按类型可以分为三类:

image-20221225173712594

3、网卡

image-20221225174329704

网卡是一个网络组件,属于硬件范畴,主要负责计算机之间数据的封装和解封

MAC 地址:网卡的物理地址,网卡设备的编号,默认情况是全球唯一的(16 进制)

image-20221225175025992

更改 MAC 地址的方式:

image-20221225175212976

  • 与 IP 地址的区别:
    • 长度不同。 IP 地址为 32 位,MAC 地址为 48 位。
    • 分配依据不同。
    • 网络寻址方式不同 OSI 参考模型,IP 地址是基于第三层工作(网络层),MAC 地址是第二层(数据链路层)
4、网线

网线 是连接局域网必不可少的。在局域网中常见的网线主要有双绞线(RJ45 接口)、同轴电缆、光缆三种。

image-20221225175813310

5、交换机

交换机(Switch)意为 “开关”,是一种用于电(光)信号转发的网络设备,交换机它可以为接入交换机的任意两个网络节点提供独享 的电信号通路。

image-20221225180045641

目前,交换机品牌比较有名的是:华为、华三(H3C)、思科、锐捷

6、路由器

路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开、相对独立的网络

image-20221225203030408

7、拓扑结构图(扩展)

​ 所谓 “拓扑” 就是把实体抽象成与其大小、形状无关的 “点”,而把连接实体的线路抽象成 “线”,进而以图的形式来表示这些点与线之间关系的方法,其目的在于研究这些点、线之间的相连关系。表示点和线之间关系的图标被称为 拓扑结构图。

常见的几种拓扑结构图:

image-20221225205447406

image-20221225205534598

image-20221225205558148

二、网络相关命令

1、ping
  • 作用:检测当前主机与目标主机之间的连通性(不是 100%准确,有的服务器是禁 ping)

  • 语法:#ping 主机地址 (ip 地址、主机名、域名等)

  • 例如:测试和 baidu.com 之间的连通性。

    image-20221225210855863

    该命令可以跨平台,windows 下也可以使用,语法一致。(区别在于 Linux 下默认一致发送,windows 下默认发送 4 个数据包)

    image-20221225211033799

2、netstat
  • 作用:表示查看网络的连接信息

  • 语法:#netstat -tnlp (-t:tcp 协议,-n:将字母转换成数字,-l:列出状态为监听,-p:显示进程相关信息)

    ​ #netstat -an (-a:表示全部,-n:将字母转化为数字)

    TCP/IP 协议需要使用这个命令。

3、traceroute
  • 作用:查找当前主机与目标主机之间所有的网关(路由器,会给沿途各个路由器发送 icmp 数据包,路由器可能会不给响应)。

    该命令不是内置命令,需要安装,但是目前的已经安装好了(之前选了开发工具)。

  • 语法:#traceroute 主机地址

    image-20221226133652560

    类似于查看快递的跟踪路由:

    image-20221226111957567

    扩展:在 windows 下也有类似的命令:tracert 主机地址

    image-20221226154631529

    https://www.tool.chinaz.com/

4、arp

地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的协议

image-20221226155100499

​ 当一个主机发送数据时,首先查看本机 MAC 地址缓存中没有目标主机的 MAC 地址,如果有就使用缓存中的结果;如果没有,ARP 协议就会发送一个广播包,该广播包要求查询目标主机 IP 地址对应的 MAC 地址,这样发送方就得到了目标主机的 MAC 地址。如果目标主机不在本地子网中,则 ARP 解析到的 MAC 地址是默认网关的 MAC 地址。

  • 常用语法:#arp -a 查看本地缓存 mac 表

    #arp -d 主机地址 删除指定的缓存记录

    image-20221226194557432

    该命令在 windows 下同样适用。

5、tcpdump(了解)
  • 作用:抓包,抓取数据

  • 常用语法:
    • #tcpdump 协议 port 端口
    • #tcpdump 协议 port 端口 host 地址
    • #tcpdump -i 网卡设备名

    查看 22 端口(ssh)的数据包:

    image-20221226195226867

    00:09:17.xxxx 监听数据的时分秒

    IP:使用的协议类型

    192.168.21.1 数据包的一个方向(来自)

    “>” 数据的流向

    192.168.21.136 数据包的另外一个方向(到达)

三、项目上线流程(必须掌握)

1、服务器选配购买

项目上线服务器必须是 外网服务器

一般服务器有 2 种情况:购买真实服务器、购买云服务

购买真实服务器一次性成本过高,所以现在基本都是选择云服务器

云服务的厂商:阿里云、腾讯云、知道创宇(加速乐)、华为云、盛大云、新浪云(sae)、亚马逊云等等。

  • 以后以阿里云为例:

    • https://www.aliyun.com
    • https://www.alimam.com
    • www.alibab.com
    • www.aliyun.com
    • www.alipay.com
    • www.alimail.com
  • 1、打开阿里云官网,选择产品中的 “云服务 ECS”

    image-20221226214751303

    在页面上点击 “立即购买”:

    image-20221226214912755

  • 2、选择具体的配置

    image-20221226215222938

    image-20221226215805074

    image-20221226215921095

    image-20221226215901327

    image-20221226220043383

    image-20221226220103486

    image-20221226220148382

    image-20221226220731430

    进入后台查看信息:

    image-20221226220915629

    需要重置密码的话,则可以选择右侧 “更多” 选择 “重置密码”,然后重启服务器,最后可以通过远程终端连接服务器:

    image-20221226221227360

2、域名购买
  • 1、在首页产品中找到域名注册

    域名注册得先查看是否可以注册:

    image-20221226221622147

    选择需要的域名:

    image-20221226222431569

    确认购买信息:

    image-20221226223308746

    购买之后就可以在后台控制面板中去查看域名情况。

3、域名备案

备案:当申请域名的人想要在国内使用域名,则需要向当地的通信管理局(省级)去申请报备。

备案前提:想要使用境内服务器的话,则必须得备案。

在管理后台点击 “ICP 备案系统”:

image-20221226224640074

点击新增主体备案:

image-20221226224813308

填写完基本信息之后点击新增网站:

image-20221226225358719

备案服务号可以在控制台顶部去获取:

image-20221226225614882

申请到备案服务号之后填写继续:

image-20221226225649861

会让用户下载一个图片:网站真实性核验单

下载打印,填写好上传到阿里云备案系统中。

后面等待初审,初审通过之后继续下一步(初审时间一般 1 天即可)

拍照

image-20221226230027008

上传照片

等待管局审核(到这个步骤基本是已经通过,审核周期一般是 15 个工作日)。

等待审核通过,就会收到工信部发送的短信与邮件通知,邮件中有备案号和备案密码(备案密码用于注销备案)。

4、域名解析

点击 ”解析“

image-20221226234124938

解析:将域名绑定到一个服务器地址的操作

DNS:domain name server,用于将域名转化成 IP 地址的服务器。
在这里插入图片描述

点击右上角的添加记录:

image-20221226234518977

选择记录:

image-20221226234727414

例如:需要将 www.linux123.xyz 解析到之前购买的云主机上,则解析可以设置如下:

image-20221226235048392

解析之后可以通过在线 ping 命令检测效果:

image-20221226235224403

5、配置生产环境(最后 1 天)
6、上传代码

此时需要使用上传工具:pscp,filezilla

和之前使用的方式一样。

Shell 基础

一、关于 shell

1、什么是 shell

  • 什么是shell?

    Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言

    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

  • 什么是脚本?

    脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的 (如可以用记事本打开查看、编辑)

    常见的脚本:JavaScript(JS),VBScript,ASP,JSP,PHP(后端),SQL(数据库操作语言),Perl,Shell,python,Ruby,JavaFX,Lua等。

  • 为什么要学习和使用 shell?

    Shell 属于内置的脚本。

    程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务**(批处理)**

    语法简单,代码写起来比较轻松,简单易学。

  • 常见的 shell 种类?

    在 Linux 中有很多类型的 shell,不同的 shell 具备不同的功能,shell 还决定了脚本中函数的语法,Linux 中默认的 shell 是 /bin/bash(重点),流行的 shell 有 ash、bash、ksh、csh、zsh等,不同的 shell 都有自己的特点以及用途。

  • csh

    C shell 使用的是 ”类C“ 语法,csh 是具有 C 语言风格的一种 shell,其内部命令有 52 个,较为庞大。目前使用的并不多,已经被 /bin/tcsh 所取代。

  • ksh

    Korn shell 的语法与 Bourne shell 相同,同时具备了 C shell 的易用特点。许多安装脚本都使用 ksh,ksh 有 42 条内部命令,与 bash 相比有一定的限制性。

  • tcsh

    tcsh 是 csh 的增强版,与 C shell 完全兼容。

  • sh

    是一个快捷方式,已经被 /bin/bash 所取代。

  • nologin

    指用户不能登录

    image-20221227003354413

  • zsh

    目前 Linux 里最庞大的一种 shell:zsh。它有 84 个内部命令,使用起来也比较复杂。一边拿情况下,不会使用该 shell。

  • bash

    大多数 Linux 系统默认使用的 shell,bash shell 是 Bourne shell 的一个免费版本,它是最早的 Unix shell,bash 还有一个特点,可以通过 help 命令来查看帮助。 包含的功能几乎可以涵盖 shell 所具有的功能,所以一般的 shell 脚本都会指定它为之下路径。

2、shell 入门

编写规范:

代码规范:
	#!/bin/bash        [指定告知系统当前这个脚本要使用的shell解释器]
	Shell相关指令
文件命令规范:
	文件名.sh          .sh 是Linux下bash shell的默认后缀

使用流程:

1、创建.sh文件              touch/vim
2、编写shell代码
3、执行shell脚本            脚本必须得有执行权限
  • 案例1:创建 test.sh,实现第一个 shell 脚本程序,输出 hello world。

    输出命令:echo 123

    注意:输出的内容如果包含字母和符号(不包含变量),则需要用引号包括起来。如果是纯数字可以包也可以不包。

    image-20221227005817319

    注意,这里运行时一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,Linux 系统会去 PATH(环境变量) 里寻找有没有叫 test.sh 的,而只有 /bin,/sbin,/usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就会在当前目录找。
    
  • 案例2:使用 root 用户账号创建并执行 test2.sh,实现创建一个 shelltest 用户,并在其家目录中新建文件 try.html。

    image-20221227010509241

    脚本执行的另外一个方式:/bin/bash 脚本的路径(了解)

    Shell 脚本分为简单的写法(简单命令的堆积)和复杂写法(程序的设计)

二、shell 进阶(重点)

1、变量

1.1、变量的含义
  • a. 什么是量
    • 量就是数据
  • b. 什么是变量
    • 数据可以发生改变就是变量
    • 在一个脚本周期内,其值可以发生改变的量就是 变量
  • c、什么叫做一个脚本周期
    • 一个脚本周期我们可以简单的理解为当前的 shell 文件

变量是 shell 中不可或缺的一部分,也是最基础、最重要的组成部分。

1.2、变量的定义与使用

变量,先定义后使用。

定义形如:class_name=“yunwei”

使用形如:echo $class_name

变量就是由 2 部分组成,一个是变量名(左边),另外一部分是变量的值(右边)

  • 变量名和变量值是什么关系??
    • 变量名和变量值是使用和被使用关系;我们的变量名来使用变量值;
    • 在使用变量的时候一定需要在变量名前面添加一个 $ 符号,该要求在其它语言中也存在的(例如 php)。
变量名的规范
注意,变量名后面的等号左右不能由空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
	命名只能使用英文字母,数字和下划线,首个字母不能以数字开头。
	中间不能有空格,可以使用下划线 "_"。
	不能使用标点符号。
	不能使用bash里的关键字(可用help命令查看保留关键字)。
  • 案例1:使用变量改写入门脚本中的第 1 个shell脚本。

    image-20221227124722625

    • 关于单双引号的问题:
      • 双引号能够识别变量,双引号能够实现转义
      • 单引号是不能识别变量,只会原样输出,单引号是不能转义的
  • 案例2:定义一个变量,输出当前时间,要求格式为 “年-月-日 时:分:秒”。

    image-20221227125438930

    注意:反引号(Esc 键下方的那个键),当在脚本中需要执行一些指令并且将执行的结果赋给变量的时候需要使用 “反引号”。

    image-20221227125658101

1.3、只读变量(了解)
  • 语法:readonly 变量名
  • 案例:定义变量 a 并且其值为 10,随后设置其为只读变量,再去尝试重新赋值

    image-20221227142035713

    image-20221227142546526

1.4、接收用户输入
  • 语法:read -p 提示信息 变量名
  • 案例:编写一个脚本 test6.sh,要求执行之后提示用户输入文件的名称(路径),然后自动为用户创建该文件

    image-20221227152251359

1.5、删除变量(了解)
  • 语法:unset 变量名
  • 案例:定义变量 b=20,再输出 b 的值,随后删除 b,最后再输出下 b

    image-20221227152723160

    image-20221227152832662

2、条件判断语句

image-20221227165836003

image-20221227170348621

3、运算符

在 shell 中,运算符和其它编程脚本语言一样,常见的有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等等

3.1、算数运算符

image-20221227180940779

注意:条件表达式要放在方括号之间,并且要有空格,例如:[ a = = a== a==b] 是错误的,必须写成[$a == $b]。

原生 bash不支持简单的数学运算,但是可以通过其它命令来实现,例如 awk 和 expr,expr最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
#!/bin/bash
val=`expr 2+2`
echo "两数之和为: $val"

两点注意:
表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2+2,这与我们熟悉的大多数编程语言不一样。
完整的表达式要被 ``包含,注意这个字符不是常用的单引号,在 Esc 键下边。
3.2、关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

image-20221227204715267

-eq:equal

-neq:not equal

-gt:great than

-lt:less than

-ge:great than or equal

-le:less than or equal

image-20221227210941279

image-20221227210958116

3.3、逻辑运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

image-20221227211213625

或运算:一个为真即为真,全部为假就是假

与运算:一个为假即为假,全部为真才是真

image-20221227212420065

3.4、字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 “abc”,变量 b 为 “efg”:

image-20221227212607155

image-20221227212736740

3.5、文本测试运算符(重点)

文件测试运算符用于检测 Unix/Linux 文件的各种属性

属性检测描述如下:

image-20221227213622861

image-20221227213739618

image-20221227213817270

image-20221227215609756

注意:权限几个判断,如果只有一个部分符合,则认为是有权限的。

4、shell 脚本附带选项

  • 问题描述:在 linux shell 中如何处理 tail -n 10 access.log 这样的命令行选项?
  • 步骤:
    • 调用 tail 指令
    • 系统把后续选项传递给 tail
    • Tail 先去打开指定的文件
    • 取出最后 10 行
  • 问题:自己写的 shell 是否也可以像内置命令一样传递一些选项呢?
    • 可以的,传递方式与上述的描述是一样的,关键是怎么接收。例如:

    • 传递:
      • #./test.sh a b c
    • 接收:
      • 在脚本中可以用 “$1” 来表示 a,“$2” 来表示 b,以此类推。

        接收可以用 “$” 加上选项对应的序号即可。

  • 测试:编写 test14.sh,传递 a,b,c,输出其值

    image-20221228160737790

    其实 $1、$2 是变量。

image-20221228161223549

添加别名:

image-20221228161503867

MySQL 基础

一、数据库

1、什么是数据库

image-20221228161811580

如果一个项目是 动态(内容会变化的,网页后缀.jsp、.php、.shtml等)内容的话,则数据库是必不可少的一个环节。

2、MySQL 简介

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发的,2008年被 Sun 公司收购,目前属于 Oracle 旗下产品。MySQL 是最流行的数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS(Relational Database Management System,关系数据库管理系统)应用软件。其和 php 是黄金搭档(LAMP/LNMP)

3、常见的其他数据库软件

目前市场上还有:Oracle(重量级的数据库)、MS SQL Server(微软)、Access(微软)、PostgreSQL、DB2、Mariadb(MySQL 分支,完全兼容 MySQL)。

二、MySQL 的安装与初始化

操作之前先确保计算机事件准确。

1、Linux 下的软件安装方式(初步)

a、源码包
  • 优点:

    • 开源,如果没有足够的能力,可以修改源代码
    • 编译安装,更加适合自己的系统,稳定高效
  • 缺点:

    • 安装步骤较多,容易出错
    • 编译过程时间较长
  • 案例:使用源码编译安装方式安装 ncurses(一种常用的终端库)
    扩展:解包
    常用语法:
    	#tar -zxvf  *.tar.gz
    	#tar -jxvf  *.tar.bz2
    选项含义:
    	-z或--gzip或--ungzip:通过 gzip 指令处理文件;
    	-x或--extract或--get:从文件中还原文件;
    	-v:显示操作过程;
    	-f或--file:指定一个文件;
    	-j:支持 bzip2 解压文件;
    
    • 1、先将软件包传递到服务器上 “/usr/local/src”

      image-20221228165922802

    • 2、解压需要安装的源码包

      #tar -zxvf ncurses-6.1.tar.gz

      image-20221228170521340

    • 3、切换到源码文件夹,然后执行后续操作

      配置(config/configure/bootstrap)-> 编译(make/bootstrapd) -> 安装(make install/bootstrapd install)

      配置操作主要是 指定软件的安装目录、需要的依赖在什么地方、指定不需要可选依赖、配置文件的路径、通用数据存储位置等等。

      指定安装的路径:–prefix=路径

      需要依赖的路径:–with-PACKAGE 名=包 所在的路径

      不需要依赖:–without-PACHAGE 名

      #./configure --prefix=/usr/local/ncurses

      image-20221228172706616

      #make

      image-20221228172844894

      #make install

      image-20221228172947648

      成功之后查看目录(可选):

      image-20221228173047854

b、二进制包(rpm)
  • 优点:包管理系统简单,只需要几个命令就可以实现包的安装,升级,查询和卸载
  • 缺点:经过编译,不再可以看到源代码

回顾 rpm 相关指令:

#rpm -qa | grep 关键词

#rpm -e 关键词 [–nodeps]

#rpm -ivh 完整名称

#rpm -Uvh 完整名称

#rpm -qf 文件路径 【查询指定文件属于哪个包】

image-20221228173812965

  • 案例:使用二进制包安装 lynx(一款纯命令行的浏览器)

    在光盘中就有这个包

    image-20221228174055636

    例如查看百度:#lynx --dump www.baidu.com

c、yum 等傻瓜式安装
  • 优点: 安装简单,快捷
  • 缺点: 完全丧失了自定义性
  • 注意:如果不更改软件来源的情况下,是需要联网才能使用 yum 的。
常用的 yum指令:
#yum list                    列出当前已经安装的和可以装的软件(全部)
#yum search                  搜索指定的关键词的包
#yum [-y] install  包名       安装指定的包(-y 表示允许不再确认)
#yum [-y] update  [包名]      更新指定的包,不指定则更新全部软件
#yum [-y] remove  包名        卸载指定的包
  • 案例:使用 yum 指令卸载火狐浏览器

    #yum remove firefox

    #yum install firefox

2、安装 MySQL

注:此处安装以 yum 安装为例

2.1、MySQL 安装

#yum install mysql-server

image-20221228180420502

2.2、MySQL 初始化

#service mysqld start

image-20221228180925001

查看端口号(默认端口号):

image-20221228180958423

#mysql_secure_installation

Enter current password for root(enter for none):请输入当前root用户的密码,如果没有按回车,注意此root并非Linux的root用户。

Set root password? 是否设置root密码?
需要设置的密码:123456

Remove anonymous users? 是否移除匿名用户,选择移除(Y)

Disallow root login remotely? 是否允许root远程登录(默认不允许)

Remove test database and access to it? 是否移除测试数据库(建议先不移除)

Reload privilege tables now? 是否重新加载权限表(当我们更改了mysql用户相关的信息之后建议去重载权限)

image-20221228181842473

2.3、MySQL 的启动控制
  • 语法:service mysqld start/stop/restart

  • 进入 mysql 的方式:

    #mysql -u 用户名 -p 密码

  • 退出 MySQL 到 Linux 命令行:

    • mysql> exit
2.4、默认目录/文件位置(了解)
  • 数据库存储目录:/var/lib/mysql

  • 配置文件:/etc/my.cnf

    image-20221228182706634

三、MySQL 的基本操作(难点)

1、名词介绍

  • 以 Excel 文件举例:
  • 数据库: 可以看作是整个 excel 文件。

  • 数据表: 可以看作是一个 excel 文件中的工作表。

  • 行(记录):可以看作是一个工作表中的一行。

  • 列(字段):可以看作是一个工作表总的一列。

2、库操作

以下命令在 MySQL 终端命令行中执行(大小写均可):

SHOW DATABASES;                 显示当前MySQL中全部的数据库
CREATE DATABASE 库名;           创建数据库
DROP DATABASE 库名;             删除数据库
USE 库名;                       切换数据库

3、表操作

SHOW TABLES;                                      显示当前数据库中所有的表名(必须先use数据库)
CREATE TABLE 表名称                                在当前数据库下创建数据表
(
列名称1 数据类型 [NOT NULL AUTO_INCREMENT],
列名称2 数据类型,
列名称3 数据类型,
....,
PRIMARY KEY(主键字段名)
);
常见的数据类型:int(整型)、char(定长字符)、varchar(不定长字符)。
主键一般就是序号所在的那一列(主键不能重复)。
DESC 表名;                                  描述一个数据表(查看表结构)                     
DROP TABLE [IF EXISTS] 表名;                删除一个数据表
USE 库名;

image-20221228213423789

image-20221228213535314

4、记录/字段操作(重点)

4.1、增加记录
语法1:INSERT INTO 表名称 VALUES (值1,值2,....);
语法2:INSERT INTO 表名称 (列1,列2,...) VALUES (值1,值2,....);

image-20221228214920485

要求前面的列名与值要一一对应。

4.2、更新记录
语法:UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2... WHERE 列名称 = 某值;

以后在执行影响行数的 sql 操作的时候一定需要注意条件是否写错或者漏写。

4.3、查询记录
SELECT 列名称1,列名称2... FROM 表名称 WHERE 条件;
SELECT * FROM 表名称 WHERE 条件;
4.4、删除记录
DELETE FROM 表名称 WHERE 列名称 = 值;

5、备份与还原(重点)

5.1、备份
全量备份(数据+结构):#mysqldump -uroot -p123456 -A > 备份文件路径
指定库备份(数据+结构):#mysqldump -uroot -p123456 库名 > 备份文件路径
多个库备份(数据+结构):#mysqldump -uroot -p123456 --databases db1 db2 > 备份文件路径

xxxxx.sql xxx.tar.gz

  • 案例:每 1 分钟自动备份 1 次 test 数据库

    image-20221228221422932

    计划任务编写:

    image-20221228221553285

5.2、还原(导入)
还原部分 分 (1)mysql 命令行source方法和 (2)系统命令行方法

1、还原全部数据库:
(1)mysql命令行:mysql > source 备份文件路径
(2)系统命令行:mysql -uroot -p123456 < 备份文件路径

2、还原单个数据库(需指定数据库)
(1)mysql> use 库名
mysql> source 备份文件路径
(2)mysql -uroot -p123456 库名 < 备份文件路径

3、还原单个数据库的多个表(需指定数据库)
(1)mysql> use 库名
mysql> source 备份文件路径
(2)mysql -uroot -p123456 库名 < 备份文件路径

4、还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
(1)mysql命令行:mysql> source 备份文件路径
(2)系统命令行:mysql -uroot -p123456 < 备份文件路径
  • 案例1:人为删除 xg 表(模拟数据表丢失),然后通过最后一次备份还原数据表。

    先删除数据表

    image-20221228222835366

    还原操作:

    image-20221228222904620

  • 案例2:需要还原 sql 文件到 test库(mobile.sql 31万条数据)

    image-20221228223240205

    • 设置 Mysql 连接字符集:

    Mysql> set names utf-8; 【三码一致,服务器端+传输过程中+客户端】

四、扩展

1、mysql 的远程管理工具

  • 分为两大类:B/S 架构、C/S 架构

    • B/S: B 是指浏览器,S 是指服务器。例如:百度搜索应用就属于 BS 架构软件。
    • C/S: C 是指客户端,S 是指服务器。例如:QQ、电脑端微信等应用程序都是 CS 架构。

    在 BS 中,mysql 有个典型的管理工具:PMA(phpMyAdmin)

    https://www.wbestgo.com

image-20221228225236157

CS 中比较典型的软件:navicat、mysql workbrach

要解决的问题:允许 mysql 远程登录

image-20221228225700063

a. 先进入数据库选择 mysql 数据库

b. 执行 sql 语句:select host,user from user;

image-20221228225857056

c. 将其中的一个记录的 host 值改为 “%“,表示可以允许任何地方登录

image-20221228230134070

d. 刷新权限表或者重启 mysql

刷新权限:mysql> flush privileges;

image-20221228230252759

e. navicat 登录成功

image-20221228230333400

Yum 项目上线实战(网站运维)

一、编译安装与卸载 Nginx

Nginx:是一款比较流行的 web 服务器软件,类似于 Apache。

image-20221229155758578

1、安装 nginx

  • 1、下载 nginx

    下载地址:https://nginx.org/en/download.html

    使用在服务端下载的方式进行下载(此处不使用 filezilla)

    #wget 地址

    例如当前需要下载 nginx“/usr/local/src”

    #wget https://nginx.org/download/nginx-1.13.11.tar.gz

    image-20221229160434904

    image-20221229160835397

  • 2、解压 nginx 安装包

    #tar -zxvf nginx-1.13.11.tar.gz

  • 3、进入 nginx 解压目录

    开始进行配置、编译、安装操作

    在配置时候报错:没有 PCRE 库

    image-20221229161148358

    直接 yum 安装 pcre-devel:

    #yum install pcre-devel

    image-20221229161426403

    报错缺少 zlib 库:

    image-20221229161536619

    直接使用 yum 安装 zlib 库:

    #yum install zlib-devel

    image-20221229161651575

    还需要自己去下载一个 zlib 的源码包,然后解压出来:

    image-20221229162402043

    image-20221229161935387

    最终的 nginx 配置命令:

    #./configure --prefix=/usr/local/nginx --with-pcre --with-zlib=/usr/local/src/zlib-1.2.11/

    开始安装:

    #make

    image-20221229162646664

    最后安装:

    #make install

    image-20221229162608451

    安装好的目录:

    image-20221229162800975

  • 4、运行 nginx

    先停止 Apache,然后再运行 nginx

    image-20221229175623989

    #/usr/local/nginx/sbin/nginx 【启动命令】

    #/usr/local/nginx/sbin/nginx -s reload 【重载,重载配置文件】

    启动效果:

    image-20221229180546116

  • 5、了解:卸载编译安装的软件

    #rm -rf 软件的安装目录

    注意:卸载一个编译安装的软件的时候必须先停止。

二、关于 LAMP

LAMP:Linux + Apache + MySQL + PHP LAMP 架构(组合)

LNMP:Linux + Ngine + MySQL + php-fpm LNMP 架构(组合)

LNMPA:Linux + Nginx + MySQL + PHP + Apache Nginx 代理方式

image-20221229180912470

image-20221229181310886

image-20221229181340292

三、LAMP 环境部署

首先登录控制台获取需要连接的主机 ip 地址:

image-20221229181748987

后续可以进行远程登录。

image-20221229181833282

在整个 LAMP 中需要自己安装的也就只有 Apache + PHP + Mysql。后续以 yum 为例。

1、PHP 与 Apache 的安装

#yum install php 【在安装好 php 的同时会一起顺带安装 Apache】

image-20221229182642130

启动 Apache:#service httpd start

image-20221229182918529

此处会有一个警告,无法确定主机的 FQDN,如果需要处理,则需要修改 Apache 的配置文件(/etc/httpd/conf/httpd.conf)

#vim /etc/httpd/conf/httpd.conf

在文件中搜索 ”ServerName“

image-20221229183237898

将前面的 ”#“ 去除,保存退出,重启 apache

image-20221229183435585

测试访问,在地址栏中输入 ip 地址直接访问(关闭防火墙):

http://39.104.60.10/

image-20221229183652464

测试 php 是否可以运行(默认的 Apache 站点目录:/var/www/html):

创建一个 index.php 文件

image-20221229184020096

运行 php 看到页面:

image-20221229192520115

2、MySQL 的安装与初始化

#yum install mysql-server

image-20221229192815837

  • 初始化操作:

    • #service mysqld start 【启动】

      image-20221229193435400

    • #mysql_secure_installation

      image-20221229193601014

  • 测试进行命令行登录:
    • #mysql -uroot -p

    如果需要远程登录则需要修改登录主机:

    image-20221229193851587

    重启 MySQL 或者刷新权限:

    Mysql> flush privileges;

    image-20221229194031215

    阿里云上的安全组端口放行:

    image-20221229194144626

    使用 navicat 进行登录:

    image-20221229194301584

3、项目上线

解压项目包,将 upload 其中的内容上传到服务器站点目录**(/var/www/html)**

image-20221229194539883

  • 1、使用 filezilla 上传需要的代码文件
  • 2、传完之后打开网站的首页,会运行 DZ 的安装向导
    • a、选择同意协议

      image-20221229195141390

    • b、赋予指定目录写权限

      image-20221229195802682

      #chmod 777 -R /var/www/html

      image-20221229202512556

      #yum install php-mysqli

      image-20221229202801052

      重启 Apache:

      image-20221229202900269

      重启之后保证所有的配置项都是绿色的勾才可以下一步。

    • c、选择 DZ 的安装方式

      image-20221229211525577

    • d、填写数据库与管理员的信息
    • e、安装完成
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值