前言
在学习数据库之前,首先最重要的就是如何安装数据库。本文讲述的是 MySQL 数据库的安装过程,为了更好的掌握 MySQL,直接使用 Linux 终端来进行学习。
1. 数据库相关环境的安装
1. 使用的 Linux 环境
目前使用的 Linux 版本是 CentOS 7,虽然该版本之后将不再更新,但对于学习 Linux 比较友好。
CentOS 7 环境下安装 MySQL 5.7 需先卸载 MariaDB 等旧环境,配置官方 YUM 源并安装服务。配置完成后启动 mysqld 服务,修改配置文件跳过密码验证登录。文章涵盖数据库基本概念、主流数据库对比、表与目录关系、架构原理、SQL 语言分类及存储引擎说明,并通过命令行演示了建库建表及数据插入流程。

在学习数据库之前,首先最重要的就是如何安装数据库。本文讲述的是 MySQL 数据库的安装过程,为了更好的掌握 MySQL,直接使用 Linux 终端来进行学习。
目前使用的 Linux 版本是 CentOS 7,虽然该版本之后将不再更新,但对于学习 Linux 比较友好。
输入下面的指令来卸载掉不需要的环境。
ps aux | grep mariadb # 先检查是否有 mariadb 存在
# 如果出现一大段数据,那么代表着此时已经存在了
systemctl stop mariadb.service # 停止 mariadb 服务
# 之后再输入第一条指令,就可以看到服务已经成功停止了
输入下面的指令,查看此时安装包是否存在。
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
输入下面的指令。
sudo yum remove mariadb # 超级用户进行删除
需要到官方网站去获取 yum 源:https://repo.mysql.com/。 此时需要找到和我们 Linux 系统一个版本的 MySQL。为了保持运行环境一致,推荐采用 5.7 这个版本。 这里我们需要安装和 Linux 系统环境一致的版本。如果不知晓自己的 Linux 的版本是多少,可以输入下面的指令:
cat /etc/redhat-release
当前 CentOS 的版本是 7.9,所以选择 el7.9 即可(代表 centos 的 7.9 版本)。点击下载相关的 rpm 文件,将其放入到 Linux 系统中。
rz # 把 Windows 系统的相关文件等等放入到 Linux 中
压缩包已存在于 /root 路径下。需要将.rpm 样子的压缩包进行解压操作。
rpm -ivh 压缩包的名字
压缩完之后,为了查看是否成功的安装,可以输入下面的指令。
ls /etc/yum.repos.d/ -l
输入下面的指令进行安装 MySQL(根据上面 yum 源的配置):
yum install -y mysql-community-server # 安装服务器和客户端
如果在安装的时候遇到报错:
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
进行完上面的安装操作以后,需要进行两个操作来查看 MySQL 是否安装成功了。
输入下面的指令,如果相符,那么代表第一个操作正确。
ls /etc/my.cnf
输入下面的指令,和图中相符的话代表是正确的。
ls /var/lib/mysql
如果上面两个指令都执行成功的话,那么说明此时我们安装成功了。
输入下面的指令即可成功的启动服务器:
systemctl start mysqld.service
之后查看服务器是否启动了,输入下面的指令。
ps axj | grep mysqld
出现第一行内容,即可代表成功启动服务器了。
通过 vim 打开相关 mysql 配置文件,进行相关配置。
vim /etc/my.cnf
在文件的最后,加入下面的代码:
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 即可
在进行上面的配置结束以后,输入下面的指令进行 mysql 的登录。
mysql -uroot -p # 最好使用 root 账户
直接 enter 即可,因为上面我们配置了可以无须密码登录,所以此时确定即可。
通常,我们习惯于使用文件存储数据。然而,单纯依赖文件存储存在诸多弊端:
因此,我们需要一种更高效、更安全的数据存储方案——数据库。 数据库通常采用磁盘或内存存储,这种存储机制使其能够更高效、更灵活地管理和存储大规模数据。与传统文件存储相比,数据库在数据安全、检索速度和管理便捷性上都具有显著优势。所以,数据库其实就是一个存储大规模数据的'文件夹'。
当今,数据库有很多的种类,常见的数据库包括:
当我们首次登录数据库的时候,输入下面的指令,就可以看到 MySQL 有几个数据库。
show databases; # 这条指令是查看 MySQL 中的数据库有几种,这里要提醒各位,数据库最后是需要;结尾的,这个点要注意。
MySQL 中的数据库在 Linux 中,是以目录的形式存在的。也就是说当我们建立数据库的时候,其实就是在 Linux 下建立一个目录。此时我们在 Linux 中输入下面的指令,就可以看到上面的库。
ll /var/lib/mysql/
这些目录就是上面中我们查看到的数据库。但是我们一般都不是对数据库进行操作,而是对数据库中的表进行操作。数据库的表其实就是 Linux 下的一个个文件,表里面都是存储一些重要的数据。
所谓安装数据库服务器,只是在机器上安装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。 它们的三者的关系如下所示: 当然,我们进行建立数据库,创建表等等的操作,这些工作其实都是 mysqld 来帮助我们完成的,它是 MySQL 的服务器,而 mysql 是 MySQL 的客户端。
为了让更好的知晓数据库应该如何进行操作,下面简单的给各位使用一下相关的指令。
create database boke_1;
show databases;
use boke_1;
show tables; # 此时没插入内容,所以为空
create table t1(
name varchar(20) not null,
tel varchar(20)
);
insert into t1 values('小王','121212323'),('小李','1121212');
select * from t1;
以上就是 MySQL 相关的简单操作。
MySQL 是一个可移植的数据库,几乎可以在当前所有的操作系统运行,如 UNIX/Linux,Windows、MAC。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
一般来说,SQL 是分为下面这三类的。
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL 的核心就是插件式存储引擎,支持多种引擎存储。
通过一条指令就可以查到。
show engines;
涉及的存储引擎一般就是第一行那个,这点记住就好。
(此处省略对比图表,建议查阅官方文档)

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online
CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online