Linux服务Day03:自定义YUM仓库、网络YUM仓库(HTTP/FTP)、MariaDB数据库基础操作

一、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. 服务端配置步骤

  1. 上传并解压软件包
bash 复制代码
tar -xf other.tar.gz -C /
  1. 安装索引工具
bash 复制代码
dnf -y install createrepo_c
  1. 生成仓库清单
bash 复制代码
cd /other
createrepo -d .
  1. 仓库更新必须同步更新索引
bash 复制代码
createrepo --update -d .

3. 客户端配置(本地访问)

  1. 编写repo文件:/etc/yum/repos.d/mydvd.repo
ini 复制代码
[other]
name=other
baseurl=file:///other
enabled=1
gpgcheck=0
  1. 刷新并使用
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)

  1. 安装httpd并启动
bash 复制代码
dnf -y install httpd
systemctl start httpd
systemctl enable httpd
ss -nutlp | grep :80
  1. 部署软件包到Web目录
bash 复制代码
tar -xf /root/other.tar.gz -C /var/www/html/
  1. 生成repodata索引
bash 复制代码
createrepo -d /var/www/html/other

客户端(client)

  1. 配置repo
ini 复制代码
[WebOther]
name=WebOther
baseurl=http://192.168.8.101/other/
enabled=1
gpgcheck=0
  1. 测试安装
bash 复制代码
dnf clean all
dnf repolist -v
dnf -y install sl

2. FTP方式构建网络YUM

服务端(server)

  1. 安装vsftpd并开启匿名访问
bash 复制代码
dnf -y install vsftpd
vim /etc/vsftpd/vsftpd.conf
# 修改:anonymous_enable=YES
systemctl restart vsftpd
systemctl enable vsftpd
ss -nutlp | grep :21
  1. 部署软件包
bash 复制代码
tar -xf /root/other.tar.gz -C /var/ftp/
createrepo -d /var/ftp/other
  1. 验证FTP
bash 复制代码
curl ftp://192.168.8.101/other/

客户端(client2)

  1. 配置repo
ini 复制代码
[FtpOther]
name=FtpOther
baseurl=ftp://192.168.8.101/other/
enabled=1
gpgcheck=0

注意 :FTP路径末尾建议加 /,否则容易访问失败。

  1. 测试安装
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 部署

  1. 安装服务端+客户端
bash 复制代码
dnf -y install mariadb-server mariadb
  1. 启动并开机自启
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文件为例,基本分为两步:

  1. 上传class.sql/root
  2. 创建库并导入
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 完整学习目标(最终总结)

  1. YUM仓库
  • 本地YUM:createrepo + file://
  • 网络YUM:HTTP(httpd)、FTP(vsftpd)
  • 客户端统一流程:.repo配置 → dnf clean all → dnf repolist
  1. MariaDB
  • 安装:mariadb-server mariadb
  • 端口:3306
  • 核心:库管理、数据导入、表CRUD
  • 高危提醒:UPDATE / DELETE 必须加 WHERE,否则全表被修改/清空
相关推荐
.select.2 小时前
TCP 5(socket编程)
服务器·网络·tcp/ip
weixin_704266052 小时前
redis 的集群
java·数据库·redis
云栖梦泽2 小时前
Linux内核与驱动:7.从应用层 lseek() 到驱动层 .llseek,Linux 字符设备偏移控制详解
linux·c++
xcbeyond2 小时前
Linux 磁盘挂载
linux·运维·服务器
正在走向自律2 小时前
企业级数据库行标识技术深度解析:OID与ROWID的双轨架构实战
数据库·oracle·oid·rowid
LoneEon2 小时前
Kubernetes高可用集群部署教程
linux·docker·kubernetes
PD我是你的真爱粉2 小时前
向量数据库原理与检索算法入门:ANN、HNSW、LSH、PQ 与相似度计算
数据库·人工智能·算法
不爱吃大饼2 小时前
redis主从节点
数据库·redis·bootstrap
Wyawsl2 小时前
Python操作MySQL数据库
数据库·python·mysql