【MySQL】MySQL的安装和基本概念

news2025/1/16 11:21:55

MySQL的安装和基本概念

  • 一、环境安装
    • 1、环境及配置
    • 2、下载安装
  • 二、基本概念
    • 1、主流数据库
    • 2、mysql和mysqld的区别和概念
      • (1)概念1:了解CS结构
      • (2)概念2:数据库指的是什么
      • (3)概念3:数据库本质
    • 3、服务器,数据库,表关系
    • 4、举个例子:创建一张学生信息表
    • 5、MySQL架构
    • 6、SQL分类
    • 7、存储引擎


一、环境安装

1、环境及配置

我们采用的环境是centos7.6
服务器是腾讯云轻量级服务器
用户是root

2、下载安装

mysql下载官网

点击跳转到当前的网页,再鼠标右击打开“查看网页源代码”。
在这里插入图片描述

因为我是centos7.6的所以选择这个下载到桌面。
在这里插入图片描述
通过rz将其解压到Linux根目录Mysql中:
在这里插入图片描述

我们先来检查一下有没有Mysql的配置源:

ls /etc/yum.repos.d/ -al
在这里插入图片描述

我们发现没有mysql的配置源,那么下载并安装:

rpm -ivh mysql57-community-release-el7.rpm
在这里插入图片描述

查看配置源,如下图发现是已经有了mysql了,并通过grep去过滤看mysql是否能够正常工作,下图中是能的。
在这里插入图片描述
在这里插入图片描述

正式安装mysql服务:

yum install -y mysql-community-server
在这里插入图片描述

发现下载失败了!我们看一下下载失败的原因:秘钥失效
在这里插入图片描述

那么我们更新一下密钥到最新版就好了:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
在这里插入图片描述
继续用上面那个yum源的指令安装:(安装成功)
在这里插入图片描述

查看配置⽂件和数据存储位置:
在这里插入图片描述

启动一下服务:
systemctl start mysqld.service
在这里插入图片描述

登录一下看看试试:
居然要密码!我们根本不知道密码是什么,所以有两种方法
第一种方法看一下临时密码(很多人机子上都没有这个):
在这里插入图片描述
第二种方法是免密登录:skip-grant-tables
在这里插入图片描述
在这里插入图片描述

其实上述做完了还是登不进去:
在这里插入图片描述
原因是我们没有重新启动一下啊,我们重新启动一下试试:
在这里插入图片描述
使用一下:
在这里插入图片描述

我们再来配置一下.cnf文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其实我们用的端口号是3306!!!

我们后面进行登录的指令:
在这里插入图片描述
如果没有写 -h 127.0.0.1 默认是连接本地
如果没有写 -P 3306 默认是连接3306端口号

二、基本概念

要弄懂数据库的概念,首先得明白为什么要有数据库,我们平常存储不是有文件存储吗?为什么不用文件存储,还非要搞出来个数据库来进行存储,原因在于:文件保存数据有以下几个缺点:文件的安全性问题、文件不利于数据查询和管理、文件不利于存储海量数据、文件在程序中控制不方便。而为了解决上面的四个问题,专家们就设计了个数据库,也就是用来管理数据的东西。

1、主流数据库

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

2、mysql和mysqld的区别和概念

(1)概念1:了解CS结构

我们既然要学习mysql,那这个mysqld是个什么?
在这里插入图片描述
我们看上图,发现mysql和mysqld在不同的文件中,mysql在/usr/bin/mysql 而 mysqld在/usr/sbin/mysqld中,而我们打出mysqld发现其实是个守护进程,其实这个mysqld是个数据库的服务器端,这个mysql是个数据库的客户端,所以我们平常学习到的mysql就是个基于C(mysql)S(mysqld)模式下的一种网络服务。看下图是个网络服务器。

在这里插入图片描述

(2)概念2:数据库指的是什么

我们既然知道了mysql是一套给我们提供数据存取的服务的网络程序,那么我们不难知道,数据库是在磁盘或者内存中存取的特定结构组织的数据也就是将来在磁盘上存储的一套数据库的方案。
而数据库的服务依旧是mysqld。

(3)概念3:数据库本质

一般的文件确实提供了数据的存储功能,但是文件并没有提供良好的数据内容管理能力,所以数据库就是对数据内容存储的一套解决方案,当用户给到了字段或者要求,数据库服务器直接拿出结果给用户即可。换而言之,就是用户提出需求(在mysql客户端),mysqld(服务端)根据这些内容自己生成对应的解决方案返回给用户。

3、服务器,数据库,表关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
在这里插入图片描述

我们可以通过linux机器下来看一下上图的概念:
在这里插入图片描述
我们其实发现/etc/my.cnf中存着一个datadir的信息表,进入这个文件中发现其文件中的目录文件就是mysql表中显示的信息了~

4、举个例子:创建一张学生信息表

创建数据库:create database helloworld;
在这里插入图片描述

使用数据库:use helloworld;
在这里插入图片描述

创建数据库表:
create table student(
name varchar(32),
age int,
gender varchar(2)
);

插入信息+查询表中数据:select * from student;
在这里插入图片描述

5、MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
在这里插入图片描述

6、SQL分类

DDL【data definition language】 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML【data manipulation language】 数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit

7、存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模板中的右值引用(万能引用)、引用折叠与完美转发

模板中的右值引用(万能引用)、引用折叠与完美转发 文章目录 模板中的右值引用(万能引用)、引用折叠与完美转发一、万能引用与引用折叠1. 模板中的右值引用2. 自动类型推导(auto)与万能引用3. 引用折叠与万能引用4. lambda表达式捕…

巨某量引擎后台登录实战笔记 | Playwright自动化框架

前言 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 入正题看看滑块是怎么个事…

数字孪生项目开发流程

数字孪生(Digital Twin)项目的开发流程涉及多个步骤,从初始概念到最终部署和维护。以下是一个典型的数字孪生项目开发流程,通过这些步骤,开发团队可以有效地规划、设计、开发和维护数字孪生项目,确保其在实…

YOLOv5 Exception: Dataset not found.

在使用yolo v5训练时弹出了这个报错,就是没有找到数据集,dataset.yaml文件里面的train 和val 的路径配置不对,开始我是使用相对路径,后面修改成绝对路径就可以了

Ubuntu23.04开机时whoopsie-upload-all占用CPU 100%,风扇狂转

Ubuntu23.04开机时,风扇狂转散热,打开终端,输入top -c,查看占用cpu最高的进程,发现是python3在执行whoopsie-upload-all脚本文件。 什么是whoopsie? 这是“Ubuntu错误报告”守护程序,默认安装在…

DAB协议解读ETSI TS 103 461

一、说明 数字信号广播( Digital Audio Broadcasting 简称DAB)是继AM、FM传统模拟广播之后的第三代广播--数字信号广播,它提供了接近CD质量的声音,广播及商机无限的附加数据服务,具有抗噪声、抗干扰、抗电波传播衰落、…

采用LoRA方法微调llama3大语言模型

文章目录 前言一、Llama3模型简介1.下载llama3源码到linux服务器2.安装依赖3.测试预训练模型Meta-Llama-3-8B4.测试指令微调模型Meta-Llama3-8B-Instruct5.小结 二、LoRA微调Llama31.引入库2.编写配置文件3.LoRA训练的产物 三、测试新模型效果1.编写配置文件2.运行配置文件&…

(Qt) 默认QtWidget应用包含什么?

文章目录 ⭐前言⭐创建🛠️选择一个模板🛠️Location🛠️构建系统🛠️Details🛠️Translation🛠️构建套件(Kit)🛠️汇总 ⭐项目⚒️概要⚒️构建步骤⚒️清除步骤 ⭐Code🔦untitled…

Arcpy安装和环境配置

一、前言 ArcPy 是一个以成功的arcgisscripting 模块为基础并继承了arcgisscripting 功能进而构建而成的站点包。目的是为以实用高效的方式通过 Python 执行地理数据分析、数据转换、数据管理和地图自动化创建基础。该包提供了丰富纯正的 Python 体验,具有代码自动…

思维导图-VPN

浏览器集成了受信任的机构的证书

解决word里加入mathtype公式后行间距变大

1.布局>页面设置>文档网格,网格栏选为无网格 2.固定间距

数据库|基于T-SQL创建数据库

哈喽,你好啊,我是雷工! SQL Server用于操作数据库的编程语言为Transaction-SQL,简称T-SQL。 本节学习基于T-SQL创建数据库。以下为学习笔记。 01 打开新建查询 首先连接上数据库,点击【新建查询】打开新建查询窗口, …

Linux基础命令[27]-gpasswd

文章目录 1. gpasswd 命令说明2. gpasswd 命令语法3. gpasswd 命令示例3.1 不加参数3.2 -a(将用户加入组)3.3 -d(从组中删除用户)3.4 -r(删除组密码)3.5 -M(多个用户一起加入组)3.6 …

23种设计模式(持续输出中)

一.设计模式的作用 设计模式是软件从业人员长期总结出来用于解决特定问题的通用性框架,它提高了代码的可维护性、可扩展性、可读性以及复用性。 二.设计模式 1.工厂模式 工厂模式提供了创建对象的接口,而无需制定创建对象的具体类,工厂类…

kafka集群跨区域跨集群同步方案MirrorMaker1 —— 筑梦之路

MirrorMaker原理架构 数据流向 上图也是一种比较常见的用法,这里作为记录。下面介绍一则实战案例。 网络架构 配置日志采集器filebeat 配置从哪里采集日志 输出到kafka集群 配置MirrorMaker消费者 参数说明: bootstrap.servers 指定消费哪个kafka的数…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(八)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 15 节) P15《14.ArkUI组件-状态管理state装饰器》 回到最初的 Hello World 案例,首先验证 如果删掉 State…

Day22:Leetcode:654.最大二叉树 + 617.合并二叉树 + 700.二叉搜索树中的搜索 + 98.验证二叉搜索树

LeetCode:654.最大二叉树 1.思路 解决方案: 单调栈是本题的最优解,这里将单调栈题解本题的一个小视频放在这里 单调栈求解最大二叉树的过程当然这里还有leetcode大佬给的解释,大家可以参考一下: 思路很清晰&#xf…

软件开源协议与QT的开源协议介绍

一.常见的六种开源协议 1.BSD协议 BSD协议全称为“Berkely Software Distribution”,中文译为“伯克利软件发行版”。其最早用于伯克利UNIX操作系统上的开源贡献。 主要特点: 允许修改源码 允许源码再发布 允许商业软件发布和销售 约束&#xff1…

JVM学习-垃圾回收(二)

标记-清除(Mark-Sweep)算法 当堆中的有效内存空间被耗尽的时候,就会停止整个程序(stop the world),然后进行两项工作,第一项则是标记,第二项是清除 标记:Collector从引用根节点开始遍历,标记所有被引用的…

fork 与 vfork 的区别

关键区别一: vfork 直接使用父进程存储空间,不拷贝。 关键区别二: vfork保证子进程先运行,当子进程调用exit退出后,父进程才执行。 我们可以定义一个cnt,在子进程中让它变成3, 如果使用fork,那…