MySQL数据库基础:从零开始的第一步【Linux】

MySQL数据库基础:从零开始的第一步【Linux】

前言

        各位小伙伴们,好久不见!近期,我的文章更新频率确实有些缓慢,在此诚挚地向大家道歉。这个月是我的期末考试月,正处于紧张的复习(也可以说是重新学习)阶段。尽管学业繁忙,但我依然坚持在知识的海洋中探索。

        今天,我将开启一个极具挑战性的全新专题——数据库。正如业界某位前辈曾言:数据库水平是衡量一名程序员专业程度的重要指标(注:这可不是我说的,如果有不同意见,请手下留情)。怀着对技术的热爱和探索的激情,我将开始书写数据库系列文章。

        既然废话已经说得差不多了,那就让我们一起,踏上数据库的奇妙旅程吧!

1.数据库相关环境的安装

        在学习数据库之前,首先最重要的就是如何安装数据库,数据库的种类有很多,今天小编讲述的是其中的MySQL数据库,为了更好的去掌握MySQL,小编并没有使用到MySQL的相关软件,而是直接使用的Linux终端来进行MySQL的学习,它有助于我们更好的去记住相关指令的记忆。下面我将会详细的讲述如何安装数据库。

1.使用的Linux环境

        小编目前使用的Linux版本是centos 7,虽然这个版本之后将不会再更新,但是对于我们学习Linux还是比较友好的。

2,卸载不要的环境

        我们需要输入下面的指令来卸载掉我们不需要的环境。

 ps ajx |grep mariadb # 先检查是否有mariadb存在 #如果出现一大段数据,那么就代表着此时已经存在了 systemctl stop mariadb.service # 停⽌mariadb 服务 #之后再输入第一条指令,就可以看到服务已经成功停止了 #会出现一小段数据,不要慌,这是停止成功的标志,这里我就不做实际演示了。

3.检查系统的安装包

        输入下面的指令,查看此时安装包是否存在。

​ grep mariadb grep mysql     #输入第二条指令,可能会出现下面的内容 #mysql-community-common-5.7.41-1.el7.x86_64 #mysql-community-server-5.7.41-1.el7.x86_64 #mysql57-community-release-el7-11.noarch #mysql-community-client-5.7.41-1.el7.x86_64 #mysql-community-libs-5.7.41-1.el7.x86_64 ​

4.卸载默认安装包

        输入下面的指令。

sudo yum remove mariadb # 超级用户进行删除

5.获取MySQL中的官方yum源

        我们需要到官方网站去获取yum源,网址我放到后面了:Index of /232905,会看到如下的界面:

        此时需要找到和我们Linux系统一个版本的MySQL,这里可能很多读者看到蓝色字体是省略的,无法看到全称,这里小编教给各位一个技巧,此时我们可以鼠标右击空白处,选择查看页面源代码(或者快捷键:Ctrl + U)。

        此时我们就可以看见完整的蓝字了,这个操作是查看页面的源代码(用HTML写的,我之后可能也会点亮这一棵技能树),为了保持各位和我的运行环境一致,这里小编推荐采用5.7这个版本,如下,大约是在166行开始:

        这里我们需要安装和我们Linux系统环境一致的版本,可能不少读者不知晓自己的Linux的版本是多少,这里我推荐各位输入下面的指令:

 cat /etc/redhat-release

        此时我们可以看出当前我们centos的版本是7.9,所以我们选择el7.9即可(代表centos的7.9版本),我们点击它以后,就会下载相关的rpm文件,此时这个文件是下到我们的Windows磁盘当中的,我们需要将这个文件放入到我们Linux系统中,这个时候我们仅需采用下面的指令(或者直接把压缩包拖到终端):

rz;  #把Windows系统的相关文件等等放入到Linux中

6.将获取的yum源进行解压

        这个时候就可以就可以看到压缩包已经存在我们的/root路径下了,如下所示:

        类似是上面的压缩包,因为小编早已经安装成功,所以当时的压缩包我没找到,上面的当做样例即可,我们需要把.rpm样子的压缩包进行解压操作,此时使用到下面的指令即可。

rpm -ivh 压缩包的名字

        压缩完之后,为了查看我们是否成功的安装,可以输入下面的指令。

ls /etc/yum.repos.d/ -l

7.安装MySQL服务

        这里我们需要输入下面的指令进行安装MySQL(根据上面yum源的配置):

 yum install -y mysql-community-server  #安装服务器和客户端,这个指令其实也帮助我们安装了相关的C接口,后续我会在提到的

        不过不少读者可能在安装的时候遇到下面的报错:

Failing package is: mysql-community-client-5.7.39-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

        这句话代表着秘钥过期了,各位读者遇到这种情况不要慌张,输入下面的指令,再重新安装一次即可。

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

8.查看自己是否安装成功

        此时进行完上面的安装操作以后,按理说我们已经安装成功了,但是为了万无一失,我们需要进行两个操作来查看MySQL是否安装成功了。

1.查看配置文件

        输入下面的指令,如果和图片相符,那么代表第一个操作正确。

ls /etc/my.cnf
2.查看数据存储位置

        输入下面的指令,和图中相符的话代表是正确的。

ls /var/lib/mysql

        上面的蓝色文件夹不用管,有MySQL这个目录即可。如果上面两个指令都执行成功的话,那么说明此时我们安装成功了。

9.启动mysqld服务器

        此时我们输入下面的指令即可成功的启动服务器:

systemctl start mysqld.service

        之后我们查看服务器是否启动了,输入下面的指令。

ps axj |grep mysqld

        出现上图第一行内容,即可代表成功启动服务器了。

10.配置mysql配置文件

        此时我们通过vim打开相关mysql配置文件,进行相关配置,输入下面的指令。

vim /etc/my.cnf

        此时上面就是我们mysql相关配置的文件,在文件的最后,加入下面的代码:

skip-grant-tables  #代码没有密码就可以进行mysql的登录 #模仿上面的图片 port=3306 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid character-set-server=utf8 default-storage-engine=innodb # 配置完毕,重启mysql即可

11.尝试登录mysql

        在进行上面的配置结束以后,此时我们可以输入下面的指令进行mysql的登录

mysql -uroot -p  #最好使用root账户,后续我会讲述用户管理操作

        此时会弹出让我们输入密码的提示:

        直接enter即可,因为上面我们配置了可以无须密码登录,所以此时确定即可。

        上面就代表着我们成功的进入了mysql界面,接下来我们的学习就要从这个界面喽~

2.数据库是什么

        安装完MySQL后,相信很多读者会产生疑问:MySQL是什么?数据库又是什么?下面我将为大家详细解答。

        通常,我们习惯于使用文件存储数据。然而,单纯依赖文件存储存在诸多弊端:

  1. 文件安全性脆弱,数据极易泄露或被非法篡改;
  2. 数据查询和管理效率低下;
  3. 不适合存储海量数据;
  4. 在实际编程中使用极不方便。

        因此,我们需要一种更高效、更安全的数据存储方案——数据库。

        数据库通常采用磁盘或内存存储,这种存储机制使其能够更高效、更灵活地管理和存储大规模数据。与传统文件存储相比,数据库在数据安全、检索速度和管理便捷性上都具有显著优势。所以,数据库其实就是一个存储大规模数据的‘文件夹’。

3.主流的数据库

        当今,数据库有很多的种类,这里小编就简单的拿几个比较常用的数据库来让各位了解主流数据库。

1.SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。

2.Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。小编这个学期的一门课就是oracle数据库,其实和MySQL大部分是很像的,只不过少部分函数不一样罢了。

3.MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。真的很好用。

4.PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。

5.SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

6.H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

4.表是什么

        当我们首次登录数据库的时候,输入下面的指令,就可以看到MySQL有几个数据库。

show databases;  #这条指令是查看MySQL中的数据库有几种,这里要提醒各位,数据库最后是需要;结尾的,这个点要注意。

        上面就是MySQL中的数据库,其实,MySQL中的数据库在Linux中,是以目录的形式存在的,也就是说当我们建立数据库的时候,其实就是在Linux下建立一个目录,此时我们在Linux中输入下面的指令,就可以看到上面的库。指令如下所示。

ll /var/lib/mysql/

        细细一看,这些目录不就是上面中我们查看到的数据库吗,所以这就证实了MySQL中的数据库,就是Linux下的一个目录,但是我们一般都不是对数据库进行操作,而是对数据库中的表进行操作。数据库的表其实就是Linux下的一个个文件,表里面都是存储一些重要的数据,就比如一个校园的数据库,存储的就是一个学生的姓名。学号等等,此时我在MySQL下输出一个指令,来让各位先来看看表是长什么样的。

        此时我们就可以看到表在MySQL的样子,同样的,我们也可以通过进入到目录查看目录下的一个个文件,其在Linux中的表示如下所示。

        这就是MySQL中的表,下面小标来讲一讲MySQL中,服务器,数据库以及表之间的关系。

4.服务器,数据库,表关系

        所谓安装数据库服务器,只是在机器上安装了一个数据库管理游戏程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。就比如学校的教务系统,后面应该就对应着一个存储学生数据的数据库。

        为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。就比如一个公司的数据库,可能里面会有各大分公司表,雇员表,以及奖金表。

        它们的三者的关系,如下所示:

        当然,我们进行建立数据库,创建表等等的操作,这些工作其实都是mysqld来帮助我们完成的,它是MySQL的服务器,而mysql数据MySQL的客户端,这一点各位要记住。

5.快速上手数据库

        为了让各位更好的知晓数据库应该如何进行操作,下面我简单的给各位简单的去使用一下相关的指令,各位目前无须记住,这些我都会在后来详细的讲述的。所以下面的操作,我就不解释了,仅仅想让各位看看数据库怎么使用。

1.创建一个数据库

create database boke_1;

2.看一眼是否创建成功

show databases;

3.进入数据库

use boke_1;

4.查看有几张表

show tables;  #此时没插入内容,所以为空

5.创建一个表

create table t1(   name varchar(20) not null,   tel varchar(20) );

6.插入两组数据

insert into t1 values('小王','121212323'),('小李','1121212');

7.查看表内容

select* from t1;

        以上就是MySQL相关的简单操作,这些以后我都会教给各位的,各位目前光看一下就好。

6.MySQL架构

        MySQL是一个可移植的数据库,几乎可以在当前所有的操作系统运行,如UNIX/Linux,Windows、MAC。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。下面可以看下相关的架构图。

7.SQL分类

        一般来说,SQL是分为下面这三类的。

1.DDL【data definition language】数据定义语言,用来维护存储数据的结构。就比如:create,drop,alter【之后都会讲述】。

2.DML【data manipulation language】数据操纵语言,用来对数据进行操作。例如:insert,delete,update。

3.DCL【【Data Control Language】数据控制语言,主要负责管理和事务。例如:grant,revoke,commit。

8.存储引擎

1.是什么

        存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种引擎存储。

2.在哪里

        可能很多读者会很好奇,我们如何查看MySQL中的存储引擎呢?通过一条指令就可以查到。

show engines;

        这些我们稍作了解就好,小编所写的文章涉及到的存储引擎一般就是第一行那个,这点各位记住就好。

3.存储引擎对比

9.小结

        以上就是MySQL的安装流程以及相关的基础,希望各位好好掌握上面的知识点。这篇文章我自我认为写的没有那么完美,因为我感觉我仅仅学到了MySQL中的毛毛雨,还有更多的知识点等着我探索,这篇文章更像是我的随手笔记,如果有误,希望各位读者不要骂我骂的太惨(┭┮﹏┭┮)。一起学习的时光总是短暂的,那么各位大佬们我们下一篇文章见啦!

Read more

从零手搓实现 Linux 简易 Shell:内建命令 + 环境变量 + 程序替换全解析

从零手搓实现 Linux 简易 Shell:内建命令 + 环境变量 + 程序替换全解析

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. Shell核心工作流程 * 二. 完整实现源代码 * 2.1 Makefile文件 * 2.2 头文件(myshell.h)和 主函数(main.c) * 2.3 核心实现(myshell.c 优化版) * 三. 核心功能解析 * 3.1 环境变量管理(补充重点) * 3.2 内建命令实现 * 3.3 外部命令执行 * 3.4 关键技术点总结

By Ne0inhk
Docker 部署 Ollama 全流程指南:支持 CPU/GPU、生产环境可用的工程化实践

Docker 部署 Ollama 全流程指南:支持 CPU/GPU、生产环境可用的工程化实践

在上一篇文章中,我们通过本地安装的方式快速跑通了 Ollama,还成功将 DeepSeek 模型运行起来,体验到了大模型本地部署的便捷性。但当你真正把 Ollama 放到团队协作环境、服务器长期运行场景,或是纳入正式项目开发流程时,会立刻发现一个核心问题:本机安装虽简单,却缺乏工程化属性。 本地安装的典型痛点集中在这几点: * 环境易污染,容易出现 CUDA 版本、依赖包的冲突问题 * 机器迁移成本高,换服务器需要重新配置全套环境 * 服务状态不可控,缺乏标准化的启停、监控方式 * 无法无缝接入企业现有运维体系,与容器化、自动化部署流程脱节 也正因如此,在真实的项目落地场景中,Docker 方式部署 Ollama 才是更合理、更可持续的选择。 本文不只是教你把 Docker 版 Ollama “跑起来”,更核心的是带你理解:如何用 Docker 部署 Ollama,让它真正具备工程可用性,适配团队协作与生产级的使用需求。 📌 系列文章 👉 大模型本地部署实践(

By Ne0inhk
【Linux】进程信号的产生

【Linux】进程信号的产生

个人主页~ 进程信号的产生 * 一、进程信号的概念 * 二、信号的产生 * 1、常用的信号解析 * 2、从硬件到软件了解信号的产生 * 3、产生方式 * (一)键盘组合键 * 后台程序 * (二)命令 * (三)系统调用 * (四)程序异常 * (1)除0异常 * (2)野指针异常 * (3)总结 * (五)软件模拟---alarm闹钟 一、进程信号的概念 进程具备能够识别并处理信号的能力,这数据进程内置功能的一部分 当进程真正收到信号的时候,具备在合适的时候处理这个信号的能力 进程在信号产生到信号处理的这段时间有临时保存哪些信号已经发生了的能力 信号的处理方式有三种:默认动作、忽略、自定义动作 二、信号的产生 1、常用的信号解析 我们常用的信号就是ctrl+c了,可以及时的把我们的前台进程(在Linux中,一个终端一般只有一个bash,每一次登陆只允许一个进程是前台进程,

By Ne0inhk
Windows 下 Docker 安装与使用全攻略(含避坑指南)

Windows 下 Docker 安装与使用全攻略(含避坑指南)

告别“在我机器上好好的”魔咒,一个容器搞定所有环境问题! “这代码在我电脑上跑得好好的,怎么一到你那就挂了呢?” —— 这句话是不是听着耳熟?作为一名开发者,你可能无数次被环境差异搞得焦头烂额。 Python版本不对、Node.js依赖冲突、数据库配置麻烦……这些问题那是非常熟悉的。 Docker 这个神器能帮你彻底解决这些烦恼! 这篇文章,我来手把手教你在Win11上安装和使用Docker,让你享受一致的开发体验。 一、为什么Windows开发者也需要Docker? 你可能会想:“Docker不是主要在Linux上用的吗?我在Windows上折腾这个干嘛?” 问得好!这里有几个实实在在的理由: 1. 开发环境一致性 你写代码用的是Windows,但服务器跑的是Linux?没问题!Docker容器在任何系统上运行的行为都是一样的。你再也不用担心“本地能跑,上线就崩”的尴尬。 2. 快速搭建开发环境 想用MySQL?一条命令搞定。需要Redis?再加一条。不用手动下载、安装、配置,省时省力。 3. 保持系统整洁 每个应用都在独立的容器里运行,不会污染你的Win

By Ne0inhk