一、YUM 仓库基础总述
YUM(Yellowdog Updater Modified)是集中存放、管理RPM软件包的仓库,可自动分析并解决依赖关系,提升安装效率。
- 服务端:软件包 + 仓库索引文件
repodata - 客户端:
.repo配置文件 + 访问地址 - 分类:本地YUM、自定义YUM、网络YUM
- 补充:pkgs.org 是免费RPM软件包下载网站
二、自定义YUM仓库(本地版)
1. 核心概念
自定义YUM仓库 = 本地自建软件源 ,速度快、可管控版本,必须用createrepo生成repodata索引。
- 生成索引:
createrepo -d 软件包目录 - 更新索引:
createrepo --update -d 软件包目录 - 最小化系统需先装:
createrepo_c
2. 服务端配置步骤
- 上传并解压软件包
bash
tar -xf other.tar.gz -C /
- 安装索引工具
bash
dnf -y install createrepo_c
- 生成仓库清单
bash
cd /other
createrepo -d .
- 仓库更新必须同步更新索引
bash
createrepo --update -d .
3. 客户端配置(本地访问)
- 编写repo文件:
/etc/yum/repos.d/mydvd.repo
ini
[other]
name=other
baseurl=file:///other
enabled=1
gpgcheck=0
- 刷新并使用
bash
dnf clean all
dnf repolist -v
dnf -y install sl cmatrix
三、网络YUM仓库(HTTP + FTP)
实验环境
- server:192.168.8.101(服务端)
- client:192.168.8.100(Web客户端)
- client2:192.168.8.102(FTP客户端)
1. Web方式(HTTP)构建网络YUM
服务端(server)
- 安装httpd并启动
bash
dnf -y install httpd
systemctl start httpd
systemctl enable httpd
ss -nutlp | grep :80
- 部署软件包到Web目录
bash
tar -xf /root/other.tar.gz -C /var/www/html/
- 生成repodata索引
bash
createrepo -d /var/www/html/other
客户端(client)
- 配置repo
ini
[WebOther]
name=WebOther
baseurl=http://192.168.8.101/other/
enabled=1
gpgcheck=0
- 测试安装
bash
dnf clean all
dnf repolist -v
dnf -y install sl
2. FTP方式构建网络YUM
服务端(server)
- 安装vsftpd并开启匿名访问
bash
dnf -y install vsftpd
vim /etc/vsftpd/vsftpd.conf
# 修改:anonymous_enable=YES
systemctl restart vsftpd
systemctl enable vsftpd
ss -nutlp | grep :21
- 部署软件包
bash
tar -xf /root/other.tar.gz -C /var/ftp/
createrepo -d /var/ftp/other
- 验证FTP
bash
curl ftp://192.168.8.101/other/
客户端(client2)
- 配置repo
ini
[FtpOther]
name=FtpOther
baseurl=ftp://192.168.8.101/other/
enabled=1
gpgcheck=0
✅ 注意 :FTP路径末尾建议加 /,否则容易访问失败。
- 测试安装
bash
dnf clean all
dnf repolist -v
dnf -y install cmatrix
网络YUM原理总结
有软件包 → 生成repodata → 用http/ftp/nfs共享 → 客户端配置baseurl即可使用。
四、MariaDB 数据库基础
1. 核心概念
- DB:数据库(数据集合)
- DBMS:数据库管理系统
- 关系型数据库:以二维表格存储
- 主流:MySQL、MariaDB、Oracle、SQL Server、达梦、openGauss、TDSQL
- MariaDB默认端口:3306
2. MariaDB 部署
- 安装服务端+客户端
bash
dnf -y install mariadb-server mariadb
- 启动并开机自启
bash
systemctl start mariadb
systemctl enable mariadb
ss -nutlp | grep :3306
3. 登录与SQL规则
数据库超级管理员:root(与操作系统超级管理员root同名,但不是一个用户)
数据库管理命令:mysql,登录数据库,实现数据管理操作
连接格式:mysql [-u 数据库用户] [-p'数据库用户密码']
- 登录:
mysql -uroot(默认无密码) - 退出:
QUIT;/\q - SQL规则:关键字不区分大小写;必须以
;或\g结尾
SQL特性:
- 数据库内写的命令也叫做:SQL命令
- SQL命令除了库名、表名,其他关键字不区分大小写
- 每个SQL语句结束必须以 ; (英文的分号)或 \g结尾
- 默认SQL语句不可以自动补齐
4. 库的增删查操作
常用sql语句:
- 列出数据库:
SHOW DATABASES; - 切换数据库:
USE mysql; - 列出数据库中有哪些表:
SHOW TABLES; - 创建数据库:
CREATE DATABASE game; - 删除数据库:
DROP DATABASE game;
bash
[root@server ~]# mysql -uroot #使用数据库管理员root连接数据库
MariaDB [(none)]> SHOW DATABASES; #查看现有的所有库
MariaDB [(none)]> USE mysql; #切换至mysql库
MariaDB [mysql]> SHOW TABLES; #查看当前所在库mysql库中有哪些表
MariaDB [mysql]> CREATE DATABASE game; #创建game库
MariaDB [mysql]> SHOW DATABASES; #查看现有的所有库,已多出game库
MariaDB [mysql]> DROP DATABASE game; #删除game库
MariaDB [mysql]> SHOW DATABASES; #查看现有的所有库,game库已被删除g
5. 数据导入(备份恢复)
为实现数据库数据备份,通常可在命令行将数据导出为本地 SQL 文件 ,也可通过 SQL 文件将数据导入数据库进行恢复。
导出 :将数据库中的数据 导出至本地sql文件,使用mysqldump 命令
导入 :将本地sql文件导入至数据库,使用mysql命令
以导入class.sql文件为例,基本分为两步:
- 上传
class.sql到/root - 创建库并导入
bash
[root@server ~]# mysql -uroot #使用数据库管理员root连接数据库
MariaDB [(none)]> CREATE DATABASE class; #新建class库
MariaDB [(none)]> SHOW DATABASES; #列出所有库,已多出class库
MariaDB [(none)]> USE class; #切换至class库
MariaDB [(none)]> SHOW TABLES; #查看class库里边有哪些表,目前没有
MariaDB [(none)]> QUIT; #退出数据库连接、
[root@server ~]# mysql -uroot class < /root/class.sql #使用class.sql导入数据至class库
[root@server ~]# mysql -uroot #使用数据库管理员root连接数据库
MariaDB [(none)]> USE class; #切换至class库
MariaDB [(none)]> SHOW TABLES; #查看class库里边有哪些表,有表格
6. 表记录增删改查(CRUD)
- 增:INSERT INTO 库名.表名 VALUES(数据1,数据2,...数据n);
- 删:DELETE FROM 库名.表名 [WHERE 条件];
- 改:UPDATE 库名.表名 SET 字段=值 [WHERE 条件];
- 查:SELECT 字段列表 FROM 库名.表名 [WHERE 条件];
① 查询(SELECT)
- 查:SELECT 字段列表 FROM 库名.表名 [WHERE 条件];
- 查询多个字段,使用,(英文逗号)隔开,*表示所有字段
sql
SELECT * FROM class.stuinfo;
MariaDB [class]> select * from class.stuinfo; ##查找class.stuinfo表中所有数据
+------+-------+--------+-------------+
| id | name | result | homeaddress |
+------+-------+--------+-------------+
| 1 | Tom | 85 | Beijing |
| 2 | Jerry | 78 | Shanghai |
| 3 | Tony | 92 | Guangzhou |
| 4 | Lucy | 85 | Shenzhen |
| 5 | Lily | 76 | Chengdu |
| 6 | Jake | 89 | Shanghai |
| 7 | Mike | 78 | Hangzhou |
| 8 | Emma | 82 | Wuhan |
| 9 | John | 94 | Xian |
| 10 | Amy | 89 | Chongqing |
+------+-------+--------+-------------+
10 rows in set (0.001 sec)
MariaDB [class]> select id,name from class.stuinfo;##查找class.stuinfo表中的id和name,多个字段用逗号隔开
+------+-------+
| id | name |
+------+-------+
| 1 | Tom |
| 2 | Jerry |
| 3 | Tony |
| 4 | Lucy |
| 5 | Lily |
| 6 | Jake |
| 7 | Mike |
| 8 | Emma |
| 9 | John |
| 10 | Amy |
+------+-------+
10 rows in set (0.001 sec)
SELECT * FROM class.stuinfo WHERE result >85;
SELECT homeaddress FROM class.stuinfo WHERE name="Tony";
② 新增(INSERT)
- 增:INSERT INTO 库名.表名 VALUES(数据1,数据2,...数据n);
- 插入数据的时候,整数类型的数据不需要使用"",字符类型的数据需要使用""
sql
INSERT INTO class.stuinfo VALUES(11,"lisi",89,"Beijing");
INSERT INTO class.stuinfo VALUES(12,"dc",89,"Nanjing");
③ 修改(UPDATE)
- 增:UPDATE 库名.表名 SET 字段=值 [WHERE 条件];
- 修改数据的时候如果不使用WHERE条件匹配,默认整个字段都修改
sql
UPDATE class.stuinfo SET result=99 WHERE name="Tony";
UPDATE class.stuinfo SET homeaddress="Chongqing" WHERE name="Lily";
④ 删除(DELETE)
- 删:DELETE FROM 库名.表名 [WHERE 条件];
- 删除表记录强烈建议使用WHERE条件匹配,不然后果自负!
sql
DELETE FROM class.stuinfo WHERE name="Tony";
DELETE FROM class.stuinfo; -- 清空全表,极度危险
五、Day03 完整学习目标(最终总结)
- YUM仓库
- 本地YUM:
createrepo+file:// - 网络YUM:HTTP(httpd)、FTP(vsftpd)
- 客户端统一流程:.repo配置 → dnf clean all → dnf repolist
- MariaDB
- 安装:mariadb-server mariadb
- 端口:3306
- 核心:库管理、数据导入、表CRUD
- 高危提醒:UPDATE / DELETE 必须加 WHERE,否则全表被修改/清空