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

前言

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

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

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

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

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

1.使用的Linux环境

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

2,卸载不要的环境

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

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

3.检查系统的安装包

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

bash 复制代码
​
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.卸载默认安装包

输入下面的指令。

sql 复制代码
sudo yum remove mariadb # 超级用户进行删除

5.获取MySQL中的官方yum源

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

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

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

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

bash 复制代码
 cat /etc/redhat-release

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

bash 复制代码
rz;  #把Windows系统的相关文件等等放入到Linux中

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

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

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

bash 复制代码
rpm -ivh 压缩包的名字

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

bash 复制代码
ls /etc/yum.repos.d/ -l

7.安装MySQL服务

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

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

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

bash 复制代码
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

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

bash 复制代码
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

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

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

1.查看配置文件

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

bash 复制代码
ls /etc/my.cnf
2.查看数据存储位置

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

bash 复制代码
ls /var/lib/mysql

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

9.启动mysqld服务器

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

bash 复制代码
systemctl start mysqld.service

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

bash 复制代码
ps axj |grep mysqld

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

10.配置mysql配置文件

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

bash 复制代码
vim /etc/my.cnf

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

bash 复制代码
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的登录

bash 复制代码
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有几个数据库。

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

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

bash 复制代码
ll /var/lib/mysql/

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

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

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

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

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

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

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

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

5.快速上手数据库

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

1.创建一个数据库

sql 复制代码
create database boke_1;

2.看一眼是否创建成功

sql 复制代码
show databases;

3.进入数据库

sql 复制代码
use boke_1;

4.查看有几张表

sql 复制代码
show tables;  #此时没插入内容,所以为空

5.创建一个表

sql 复制代码
create table t1(
    name varchar(20) not null,
    tel varchar(20)
);

6.插入两组数据

sql 复制代码
insert into t1 values('小王','121212323'),('小李','1121212');

7.查看表内容

sql 复制代码
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中的存储引擎呢?通过一条指令就可以查到。

sql 复制代码
show engines;

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

3.存储引擎对比

9.小结

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