导航

此笔记为学习https://www.bilibili.com/video/BV1nW411L7xm/?vd_source=3f851e85e66ef33269a2eefee664cec2的学习记录,希望能找到运维的实习吖O(≧▽≦)O

目录

Linux的终端

终端组成部分

在这里插入图片描述

Linux关机命令

  1. shoutdown -h now(正常关机)
  2. halt(关闭内存)
  3. init 0

使用VMware备份操作系统

快照

  • 保存某个时期系统状态,短期备份
  • 在这里插入图片描述

克隆

  • 复制,长期备份,必须关闭敞口

Linux系统的文件

文件与文件夹

  • 在这里插入图片描述

  • 在这里插入图片描述

Linux系统的文件目录结构

  • 在这里插入图片描述

  • 在这里插入图片描述

Linux的基本指令

指令与选项

  • 标准格式:#指令主体 [选项] [操作对象]

基础指令

ls指令

  • ls:列出当前目录所有文件

  • ls 路径:列出指定路径下的文件

    • 在这里插入图片描述

      • 蓝色表示文件夹
      • 黑色表示文件
      • 绿色表示拥有的权限
  • ls 选项 路径:列出指定路径下的文件并以指定的格式显示

    • ls -l:详细列表形式展示

    • ls -a:显示所有文件(包括隐藏文件)

      • 在这里插入图片描述

      • 在这里插入图片描述

    • ls -lh 路径:列出指定文件夹的名称,并显示大小

pwd指令

  • pwd:打印当前工作路径

cd命令

  • cd 路径:用于切换当前工作目录
    • 在这里插入图片描述

mkdir指令

  • mkdir 路径:创建目录
  • mkdir -p 路径:一次性创建多个不存在的目录
  • mkdir 路径1 路径2 路径3 ...:一次性创建多个目录

touch指令

  • touch 文件路径:创建文件
  • touch 文件1 文件2:当前路径下创建多个文件

cp指令

  • cp 被复制的文档路径 文档被复制到的路径:复制一个文件
  • cp -r 被复制的文档路径 文档被复制到的路径:递归复制

mv指令

  • mv 需要移动的文档 需要保存的位置:移动文档到新的位置(可以用来重命名)

rm指令

  • rm 选项 需要移除的文件路径
    • rm 文件名:不带选项,需要频繁输入y或n
    • rm -f 文件名:强制删除,不提示是否删除
    • rm -r 文件名:递归删除
    • rm 部分名字*: *为通配符,删除某些字段开头的文件

vim命令

  • vim 文件的路径:编写某个文件

输出重定向

  • 正常执行的指令 >/>> 文件的输出路径:输出结果到指定的地方

    • >:覆盖输出,会覆盖掉原来文件的内容

    • >>:追加输出,在原始内容末尾继续添加

cat指令

  • cat 文件的路径:cat有直接打开一个文件的功能
  • cat 待合并的文件路径1 待合并的文件路径2... > 合并之后的文件路径:合并若干个文件并存到一个文件中,配合输出重定向使用

进阶指令

df指令

  • df:查看磁盘空间

free指令

  • free -m:表示以mb为单位查看剩余内存

head指令

  • head -n 文件路径:查看一个文件的前n行,默认n为10

tail指令

  • tail -n 文件路径:查看一个文件的最后的n行,默认n为10
  • tail -F 文件的路径:查看一个文件的动态变化

less指令

  • less 需要查看的文件路径:查看文件,以较少的内容进行输出,用辅助功键(空格翻页、上下键/回车一行行查看、数字+空格指定行)能查看更多

wc指令

  • wc 选项 文件的路径:统计文件内容信息(行数、单词数、字节数)
    • wc -l:行数
    • wc -w:单词数
    • wc -c:字节数

date指令(重点)

  • date:表示操作时间日期(读取、设置),输出格式为2023年9月26日21:49:17

  • date +%F:输出形式为2023-9-26

  • date +"+%F %T":引号表示年月日与时分秒成为一个整体,输出形式 2023-9-26 21:49:17

  • date -d "-1 day":获取之前或者之后的某个时间(备份)

在这里插入图片描述

cal指令

  • cal:直接输出当前月份的日历
  • cal -3:输出上月、本月、下月的日历
  • cal -y 年份:输出整年的月份

clear/按下ctrl+L指令

  • clear:清除终端中已经存在的命令和结果(信息)

管道

  • :管道一般可以用于“过滤,”特殊“,”拓展处理“
  • 在这里插入图片描述

高阶指令

hostname指令

  • hostname:输出完整主机名
  • hostname -f:输出当前主机名中的FQDN(全限定域名)

id指令

  • id:默认显示当前执行该命令的用户的基本信息
  • id 用户名:显示指定用户的基本信息

whoami指令

  • whoami:一般用于shell脚本,用于获取当前操作的用户名方便记录日志

ps -ef指令(重点)

  • ps -ef:查看服务器的进程信息

    • -e:等价于“-A”表示列出全部的进程
    • -f:显示全部的列(显示全字段)
    • 在这里插入图片描述
  • ps -ef|grep 进程名称:在ps的结果中过滤出想要查看的进程状态

top指令(重点)

  • top:查看服务器进程占用资源
    • 在这里插入图片描述

    • 运行top的时候,可以按下快捷键:

      • M:表示将奖结果按照内存(MEM)从高到低进行降序排序
      • P:表示将结果按照CPU的使用率从高到低进行降序排序
      • 1:当服务器拥有多个CPU的时候可以使用“1”快捷键来切换是否显示各个CPU的详细情信息

du -sh指令

  • du -sh 目录路径:查看目录的真实大小
    • -s:summaries,只显示汇总的大小
    • -h:以高可读的形式显示

find指令

  • find 路径范围 选项 选项的值:用于查找文件(共有55个指令)
  • 选项:
    • -name:按照文档名称进行搜索
    • -type:按照文档的类型进行搜索
      • 文档类型:“-”表示文件(用“f”来代替),“d”表示文件夹

service指令(重点)

  • service 服务名 start/stop/restart:用于控制一些软件的服务启动/停止/重启

kill指令(重点)

  • kill 进程PID:杀死进程
  • kill all 进程名称:与kill相似

ifconfig指令(重点)

  • ifconfig:获取网卡信息
    • inet addr就是网卡的IP地址

reboot指令

  • reboot:重新启动计算机
  • reboot -w:模拟重启(实际不重启)

shutdown指令(重要)

  • shutdown -h now "关机提示"或者shutdown -h 指定时间 "关机提示":关机
    • 取消关机:
      • centos7.x之前的版本:Ctrl+c
      • centos7.x之后的版本 shutdown -c
    • 在这里插入图片描述

uptime指令

  • uptime:输出计算机从开机到现在的时间

uname指令

  • uname:获取操作系统的类型
  • uname -a:获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)

netstat -tnlp指令

  • netstat -tnlp:查看网络的连接状态
    • 在这里插入图片描述

man指令

  • man 命令:手册

练习题

  1. 如何通过命令行重启linux操作系统?

    • reboot
  2. 如何在命令行中快速删除光标前/后的内容?

    • 前:ctrl + u 后:ctrl + k
  3. 如何删除/tmp下所有A开头的文件?

    • rm -f /tmp/A*
  4. 系统重要文件需要备份,如何把/etc/passwd备份到/tmp目录下?

    • cp /etc/passwd /tmp/
  5. 如何查看系统最后创建的3个用户?

    • tail -3 /etc/passwd
  6. 什么命令可以统计当前系统中一共有多少账户?

    • wc -l /etc/passwd
    • cat /etc/passwd|wc -l
  7. 如何创建/tmp/test.conf文件?

    • touch /tmp/test.conf
  8. 如何通过vim编辑打开/tmp/test.conf?

    • vim /tmp/test.conf
  9. 如何查看/etc/passwd的头3行和尾3行?

    • head -3 /etc/passwd
    • tail -3 /etc/passwd
  10. 如何一次性创建目录/text/1/2/3/4?

    • mkdir -p /text/1/2/3/4
  11. 如何最快的返回到当前账户的家目录?

    • cd ~
    • cd
  12. 如何查看/etc所占的磁盘空间?

    • du -sh /etc
  13. 如何删除/tmp下所有的文件?

    • rm -rf /tmp/*
  14. 尝试启动Apache的服务,并且检查是否启动成功。

    • service httpd start
    • ps -ef|grep httpd
  15. 使用已学命令杀死Apache的进程。

    • killall httpd

vi编辑器

vim的三种模式(重点)

  1. 命令模式

  2. 编辑模式(输入模式)

  3. 末行模式(尾行模式)

  4. 在这里插入图片描述

  5. 在这里插入图片描述

命令模式

光标移动

  1. 移动到行首:^
  2. 移动到行尾:$
  3. 移动到首行:gg
  4. 移动到末行:G
  5. 翻屏:
    • 向上:按键PageUp/Ctrl+b
    • 向上:按键PageDown/Ctrl+f

复制

  1. 复制光标所在行:yy
  2. 光标的当前行在内,向下复制指定的行数:数字yy
  3. 可视化复制:ctrl+v,然后方向键上下左右进行选择

粘贴

  1. 想要粘贴的地方:p

剪切/删除

  1. 剪切/删除光标所在行:dd(删除之后的下一行上移)
  2. 剪切/删除光标的当前行在内,向下进行删除/剪切指定的航:数字dd
  3. 剪切/删除光标的当前行在内,但是不上移:D

撤销/恢复

  • 输入: :u/u
  • 恢复:ctrl+r

光标迅速移动

  1. 快速移动到指定行:数字G
  2. 以当前行为标准向上/下/左/右移动:数字+方向键

模式间的切换

在这里插入图片描述

末行模式

保存

  • 保存::w
  • 另存为::w 路径

退出

  • 退出::q

保存并退出

  • 输入::wq

强制

  • 强制退出但不保存::q!

调用外部的命令

  • 输入::!外部命令

搜索/查找

  • 输入:/关键,通过按键选择上一个(N)下一个(n)

取消高亮

  • 输入::nohl

替换

  • :s/搜索的关键词/新的内容:替换光标所在行第一处符合条件的内容
  • :s/搜索的关键词/新的内容/g:替换光标所在行的全部符合条件的内容
  • :%s/搜索的内容/新的内容:替换整个文档每行第一个符合条件的内容
  • :%s/搜索的关键词/新的内容/g:替换整个文档符合条件的内容
    • %表示整个文件
    • g表示全局

行号

  • 显示::set nu
  • 取消显示::set nonu

多个文件切换

  • 查看当前已经打开的文件名称::files

    • 在这里插入图片描述
  • 切换文件的方式

    • 切换指定文件:open 已经打开的文件名
    • 通过其他命令来切换上/下一个文件
      • :bp:切换到上一个文件
      • :bn:切换到下一个文件

编辑模式

进入

  • a:光标前插入
  • i光标后插入

退出

  • 按下esc

实用功能

代码着色

  • 开启显示::syntax on
  • 关闭显示::syntax off

vim中计算器的使用

  1. 进入编辑模式
  2. 按下按键ctrl+r,然后输入 =,光标回来到最后一行
  3. 输入需要计算的内容然后按下回车

拓展

vim的配置

  1. 在文件打开的时候在末行模式下的输入的配置(临时的)

  2. 个人配置文件(~/.vimrc,没有的话需自行创建)

    • 在这里插入图片描述
  3. 全局配置文件(vim自带,/etc/vimrc)

异常退出

  • 在这里插入图片描述

  • 解决方法:

    • 将交换文件(在编程过程中产生的临时文件)删除掉即可:rm -f 临时文件名

别名机制(使用)

  • 在这里插入图片描述

退出方法

  • :x:没有修改直接退出,修改了将保存后退出
    • 在这里插入图片描述

Linux自有服务

运行模式

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 与该级别有关的几个命令:

    • init 0:关机
    • init 3:切换到不带桌面的模式
    • init 5:切换到图形化界面
    • init 6:重启电脑

用户与用户组管理

  • 注意三个文件
    • /etc/passwd:储存用户关键信息
    • /etc/group:储存用户组的关键信息
    • /etc/shodow:储存用户密码信息

用户管理

  1. 添加用户

    • useradd 选项 用户名,常用选项:

      • -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
      • -G:表示指定用户的用户附加3组,选项的值可以是用户组的id,也可以是组名
      • -u:自定义用户id
    • 在这里插入图片描述

    • 在这里插入图片描述

  2. 修改用户

    • usermod 选项 用户名,常用选项:
      • -g:表示指定用户的用户主组,选项值可以是用户组的id,也可以是组名
      • -G:表示指定用户的用户附加组,选项值可以是用户组的id,也可以是组名
      • -u:修改用户ID(用户的标识符)
      • -l 新用户名 旧用户名:修改用户名
  3. 设置密码

    • passwd 用户名
    • 在这里插入图片描述
  4. 删除用户

    • userdel 选项 用户名,常用选项:
      • -r:删除用户的同时,删除其家目录
      • 在这里插入图片描述

用户组管理

在这里插入图片描述

  1. 用户组添加

    • groupadd 选项 用户名,常用选项:
      • -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组id数字
  2. 用户组编辑

    • groupmod 选项 用户组名,常用选项:
      • -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组id数字
      • -n:类似于用户修改“-l”,表示设置新的用户组名称
  3. 用户组删除

    • groupdel 用户组名

网络设置

  • 网卡位置:在这里插入图片描述

  • 在这里插入图片描述

  • 重启网卡:service network restart

  • 查看服务的快捷方式

    • 在/etc/init.d存放着相对应的服务快捷方式
  • 创建软链接

    • ln -s 原始文件的路径 快捷方式的路径
  • 重启网卡

    • 停止网卡:ifdown 网卡名
    • 开启网卡:ifup 网卡名

ssh服务

  • 默认端口号:22
    • 端口文件在/etc/ssh/ssh_config
    • 端口号范围在0-65535
    • 不能使用已被占用的端口号
  • 服务启动/停止/重启:service sshd start/stop/restart

远程终端

  • 常用工具:Xshell、Putty、secureCRT

ssh文件传输

设置主机名

  1. 临时设置主机名:hostname 主机名
  2. 永久设置主机名:
    • 找到主机名的配置文件:/etc/sysconfig/network
    • 修改其中的HOSTNAME为新主机名
  3. 修改Linux服务器的hosts文件,将新主机名指向本地(设置FQDN)

chkconfig

  • 开机启动服务查询:chkconfig --list

    • 在这里插入图片描述
  • 删除服务:chkconfig --del httpd 服务名

  • 添加开机启动服务:chkconfig -add 服务名

  • 设置服务在某个级别下开机启动/不启动:chkconfig -level 连在一起的启动级别 服务名 on/off

ntp服务

  1. 一次性同步时间(简单):ntpdate 时间服务器的域名或IP地址
    • IP地址查询亦可访问http://www.ntp.org.cn/
  2. 设置时间同步服务
    • 服务名:ntpd
    • 启动ntpd服务:service ntpd start
    • 设置ntpd服务开机自启:chkconfig --level 35 ntpd on

防火墙服务

  • 查看防火墙是否开机启动:chkconfig --list | grep iptables
  • iptables服务启动/重启/关闭:service iptables start/stop/restart
  • 查看iptables的状态:service iptables status
  • 查看规则的命令:iptables —L-n
  • 简单设置防火墙规则:
    • 在这里插入图片描述

    • 保存防火墙规则:/etc/init.d/iptables save

rpm管理

  • 查询:rpm -qa|grep 关键词,选项:

    • -q:查询
    • -a:全部
  • 卸载:rpm -e 软件的名称

    • 在这里插入图片描述
  • 安装

    • 方法:

      • 从光盘中下载(旧版本)
      • 去官网下载
    • 以光盘文件为例:

      • 查看块状文件:lsblk

      • 在这里插入图片描述

      • Name:名称,Size:设备大小,Type:类型,MountPoint:挂载点(类似windows下盘符)

        • 光盘的挂载与解挂:
          • 解挂:umount 当前设备的挂载点(路径)(相当于U盘在windows上已经被弹出了,但是没有拔下电脑USB接口。)
          • 挂载:mount 设备原始地址 要挂载的位置路径
            • 在这里插入图片描述
    • 安装软件的命令:rpm -ivh 软件包完整名称,选项:

      • -i:安装
      • -v:显示进度条
      • -h:表示以”#“形式显示进度条

cron/crontab计划任务

  • crontab 选项,常用选项:

    • -l:列出指定用户的计划任务列表
    • -e:编辑指定用户的计划任务列表
    • -u:指定的用户名,如果不指定,则表示当前用户
    • -r:删除指定用户的计划任务列表
  • 编辑计划任务

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

  • crontab权限问题:超级用户可以通过配置来设置某些用户不允许设置计划任务,配置文件(黑名单)位于:/etc/cron.deny,里面写用户名,一行一个;还有一个配置文件(白名单)设置允许用户设置计划任务:/etc/cron.allow(白名单高于黑名单)

Linux权限管理

权限概述

  • 在这里插入图片描述

权限介绍

  • 在这里插入图片描述

身份介绍

  • Owner身份(文件所有者,默认为文档的创建者)

    • 在这里插入图片描述
  • Group身份(与文件所有者同组的用户)

    • 在这里插入图片描述
  • Others身份(其他人,相对于所有者)

    • 在这里插入图片描述
  • Root用户(超级用户)

    • 在这里插入图片描述

Linux的权限介绍

  • 查看文件属性:ls -l

权限设置

  • chmod 选项 权限模式 文档,常用选项:
    • -R 递归设置权限(当文档类型为文件夹的时候)

    • 权限模式:文档需要设置的权限信息

    • 文档:是文件/文件夹,也可以是相对/绝对路径

    • 字母形式:

    • 数字形式:

    • 注意事项:

      • 使用root用户创建一个文件夹(/oo),权限默认
      • 需要在oo目录下创建文件(oo/xx.txt),需要给777权限

属主与属组设置

  • chown -R username 文档路径:更改文档的所属用户
  • chgrp -R groupname 文档的路径:更改文档所属的用户组
  • chown -R username:groupname 文档路径:更改所属的用户以及用户组

拓展

  • sudo配置文件:/etc/sudoers
  • 配置sudo文件:visudo
  • 配置普通用户的权限
    • 在添加好对应的规则之后就可以切换用户,切换到普通用户,再去执行:sudo 需要执行的指令
  • sudo -l:普通用户查看自己具有哪些特殊权限

Linux的网络基础

网络相关概述

网络的发展

IP地址

网卡

网线

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

交换机

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

路由器

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

拓扑结构图(扩展)

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

常见的几种拓扑结构图:

网络相关命令

ping

  • ping 主机地址(IP地址/主机名/域名等):检测当前主机与目标主机之间的连通性(不是100%准确,有的服务器是禁ping)

netstart

  • netstat -tnlp:表示查看网络的连接信息(-t:tcp协议,-n:将字母转化成数字,-l“列出状态为监听,-p:显示进程相关信息)
  • netstat -an😦-a:表示全部,-n:将字母转化为数字)

tranceroule

  • trancetoule 主机地址:查找当前主机与目标主机之间所有的网关(路由器,会给各个路由器发送lcmp数据包,路由器可能会不响应)

arp

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

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

  • 常用语法:

    • arp -a:查看本地缓存mac表
    • arp -d 主机地址:删除指定的缓存记录

tcpdump

  • 作用:抓包、抓取数据表
  • 常用语法:
    • tcpdump 协议 port 端口
    • tcpdump 协议 port 端口 host 地址
    • tcpdump -i 网卡设备名

项目上线流程

服务器选配购买

  • 云服务的厂商:阿里云、腾讯云、知道创宇(加速乐)、华为云、盛大云、新浪云(sae)、亚马逊云等等。以后以阿里云为例:官网:http://www.aliyun.com

域名购买

域名备案

域名解析

配置生产环境

上传代码

Shell基础

关于shell

什么是shell

shell

shell进阶

变量

变量的含义

变量的定义域使用

  • 变量,先定义后再使用
  • 关于单双引号的问题:双引号能够识别变量,双引号能够实现转义(类似于“\”)单引号是不能识别变量,只会原样输出,单引号是不能转义的
  • 注意:反引号(esc键下方的那个键),当在脚本中需要执行一些指令并且将执行的结果赋给变量的时候需要使用“反引号”。

只读变量

  • readonly 变量名:

接受用户输入

  • read -p 提示信息 变量名

删除变量

  • unset 变量名

条件判断语句

  • 语法1:

    • if condition
      then
      	command1
      	command2
      	...
      fi
      
      单行写法::if[condition];then command;fi
      
  • 语法2:

    • if condition
      then
      	command1
      	command2
      	...
      else
      	command
      fi
      
  • 语法3:

    • if condition
      then
      	command1
      elif condition2
      then
      	command2
      	...
      else
      	commandN
      fi
      

运算符

算术运算符

关系运算符

  • 关系运算符只支持数字,不支持字符串,除非字符串的值是数字
  • 下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

逻辑运算符

字符串运算符

文件测试运算符

shell脚本附带选项

  • 问题:自己写的shell是否也可以像内置命令一样传递一些选项呢?
  • 答:可以的,传递方式与上述的描述是一样的,关键是怎么接收。例如:
    • 传递:#./test.sh a b c
    • 接收:在脚本中可以用“$1”来表示a,“\(2”来表示b,以此类推。接收可以用“\)”加上选项对应的序号即可。

MySQL基础

关于数据库

什么是数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

MySQL简介

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

常见数据库软件

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

MySQL的安装与初始化

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

  • 源码包(建议)

    • 优点:
      • 开源,如果有足够的能力,可以修改源代码
      • 编译安装,更加适合自己的系统,稳定高效
    • 缺点:
      • 安装步骤较多,容易出错
      • 编译过程时间较长
    • 案列:使用源码编译安装方式安装ncurses(一种常用的终端库)
      • 先将软件包传递到服务器上“/usr/local/src”
      • 解压需要安装的源码包
      • 切换到源码文件夹,然后执行后续操作
      • 配置(config/configure/bootstrap) → 编译(make/bootstrapd) →安装(make install/bootstrapd install)
        • 配置操作主要是指定软件的安装目录、需要的依赖在什么地方、指定不需要可选依赖、配置文件的路径、通用数据存储位置等等。
          指定安装的路径:--prefix=路径
          需要依赖的路径:--with-PACKAGE名=[包所在的路径]
          不需要依赖:--without-PACHAGE名
  • 二进制包(rpm)

    • 优点
      • 包管理系统简单,只需要几个命令就可以实现包的安装,升级,查询和卸载
    • 缺点
      • 经过编译,不再可以看到源代码
      • rpm相关指令:
        • rpm -qa|grep 关键词:查询全部
        • rpm -e 关键词 [--nodeps]卸载(忽略依赖关系)
        • rpm -ivh 完整名称:安装一个软件
        • rpm -Uvh 完整名称:升级一个已经安装的软件
        • rpm -qf 文件路径:查询指定文件在那个包
  • yum等傻瓜式安装

    • 优点:
      • 安装简单,快捷
    • 缺点
      • 完全丧失了自定义性

安装MySQL

MySQL安装

  • yum install mysql-server

MySQL初始化

  • service mysqld start
  • mysql_secure_installation

MySQL的启动控制

  • service mysqld start/stop/restart

默认目录

数据库存储目录:/var/lib/mysql

配置文件:/etc/my.cnf

MySQL的基本操作

名词介绍

以Excel文件举例:
数据库:可以看作是整个excel文件。
数据表:可以看作是一个excel文件中的工作表。
行(记录):可以看作是一个工作表中的一行
列(字段):可以看作是一个工作表总的一列

库操作

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

表操作

  • SHOW TABLES;:显示当前数据库中所有的表名(必须先use数据库)

  • 在当前数据库下创建数据表:

    CREATE TABLE 表名称				在当前数据库下创建数据表
    (
    列名称1 数据类型 [NOT NULL AUTO_INCREMENT],
    列名称2 数据类型,
    列名称3 数据类型,
    ....,
    PRIMARY KEY(主键字段名)
    );
    
  • 常见的数据类型:int(整型)、char(定长字符)、varchar(不定长字符)。主键一般就是序号所在的那一列(主键不能重复)。

  • DESC 表名;:描述一个数据表(查看表结构)

  • DROP TABLE [IF EXISTS] 表名;:删除一个数据表

查询记录

  • SELECT 列名称1,列名称2… FROM 表名称 WHERE 条件;
  • SELECT * FROM 表名称 WHERE 条件;

删除记录

  • DELETE FROM 表名称 WHERE 列名称 = 值;

备份与还原

备份(导出)

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

还原(导入)

  • 还原部分分:

    1. mysql命令行source方法
    2. 系统命令行方法
  • 还原全部数据库:

    • mysql命令行:mysql> source 备份文件路径
    • 系统命令行:mysql -uroot -p123456 < 备份文件路径

还原单个数据库(需指定数据库)

  • mysql> use 库名
    
    mysql> source 备份文件路径
    
  • mysql -uroot -p123456 库名 < 备份文件路径
    

还原单个数据库的多个表

  • mysql> use 库名
    mysql> source 备份文件路径
    
  • mysql -uroot -p123456 库名 < 备份文件路径

还原多个数据库(一个备份文件里有多个数据库的备份,此时不需要指定数据库)

  • mysql命令行:mysql> source 备份文件路径
  • 系统命令行:mysql -uroot -p123456 < 备份文件路径

拓展

MySQL的远程管理工具

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

B/S:B是指浏览器,S是指服务器。例如:百度搜索应用就属于BS架构软件。

C/S:C是指客户端,S是指服务器。例如:QQ、电脑端微信等应用程序都是CS架构。

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

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

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

  • 先进入数据库选择mysql数据库;
  • 执行sql语句:select host,user from user;
  • 将其中的一个记录的host值改为“%”,表示可以允许任何地方登录
  • 刷新权限表或者重启mysql:mysql> flush privileges;