初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL

这篇具有很好参考价值的文章主要介绍了初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

MySQL简介

MySQL特性

MySQL体系结构

SQL的四个层次:

连接层:

SQL层:

插件式存储引擎:

物理文件层:

一条SQL语句的执行流程:

MySQL在Linux中的安装、部署

首先需要下载mysql软件包:


 文章来源地址https://www.toymoban.com/news/detail-524000.html

MySQL简介

MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。

目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

MySQL特性

1、使用c和c++编写,并使用了多种编译器进行测试,保证源代码的可移植性。(运行效率高(更靠近底层))

2、支持多种操作系统

3、为多种编程语言提供了API。

4、支持多线程、充分利用CPU资源,支持多用户

5、优化SQL查询算法,有效的提高查询速度。

6、可以作为一个单独的应用程序在客户端服务器网络环境中,也可以作为一个库嵌入到其他的额软件中

7、提供多语言支持

8、提示TCP/IP、ODBC和IDBC等多种数据库连接途径

9、提供用于管理、检测、优化数据库操作的管理工具

10、可以处理拥有上千万条记录的大型数据库

MySQL体系结构

Mysql是由SQL接口、解析器、优化器、缓存、存储引擎组成的;

Connectors:不同语言中与不同SQL的交互

Managemen Serveices & Utilities:系统管理和控制工具

Connection Pool:连接池,管理缓冲用户连接,线程处理等需要缓存的需求

SQL Interface:SQL接口,接收用户的SQL命令,并且返回用户需要查询的结果

Parser:解析器,SQL命令传递到解析器的时候会被解析器验证和解析

Optimizer:查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化

Cache和Buffer:查询缓存,如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据

Engine:存储引擎,存储引擎是Mysql中具体与文件打交道的子系统

SQL的四个层次:

连接层:

思想:为了解决资源的频繁分配、释放造成的问题,为数据库建立一个缓冲池。

原理:预先在缓冲池放入一定数量的连接,当需要数据库连接时,只需要从“缓冲池”当中取出一个,使用完毕后再放回去。

作用:进行身份验证、线程重用、连接限制、检查内存,数据的缓存;管理用户的连接,线程处理等需要缓存的需求

SQL层:

管理服务和工具组件:从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库

sql接口组件:进行DML、DDL、存储过程、视图、触发器等操作和管理;用户SQL命令接口

解析器组件:验证和解析SQL命令

查询优化器组件对SQL语句查询进行优化、“选取、投影和连接”

缓存和缓冲区:由一系列小缓存组成的,比如表缓存,记录缓存,key缓存,权限缓存等

插件式存储引擎:

存储引擎:Mysql的存储引擎是插件式的,它根据Mysql AB公司提供的文件访问层的一个抽象接口来定制的一种访问机制,这种访问机制被称为存储引擎;

MYISAM

查询速度快,由较好的索引优化和数据压缩技术,但是不支持事物

InnoDB

它支持事务,并且提供行级的锁定,应用很广泛(默认的模式)

BDB:不再从底层支持BDB

Memory:适合存储临时数据

Archive:适合存储历史数据

物理文件层:

支持的文件类型:EXT3、4、NTFS、NFS

文件内容:数据文件、日志文件、配置文件、其他文件

一条SQL语句的执行流程:

连接层:

(1)提供连接协议:TCP/IP、SOCKET

(2)提供验证:用户、密码、IP、SOCKET

(3)提供专用连接线程:接收用户SQL,返回结果

可以使用这条语句查看连接线程基本情况:

mysql> show processlist;

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

SQL层:

(1)接收上层传送的SQL语句

(2)语法验证模块:验证语句语法,是否满足SQL_MOOE

(3)语义检测:判断SQL语句的类型

  •    DDL :数据定义语言
  •    DCL :数据控制语言
  •    DML :数据操作语言
  •    DQL: 数据查询语言

(4)权限检查:用户对库表有没有权限

(5)解析器:对语句执行前,进行预先处理,生成解析树(执行计划),即生成多种执行方案

(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划

代价模型:资源的耗损平库性能的好坏

(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果

(8)提供查询缓存(默认关闭),会使用redisrair替代查询缓存功能

(9)提供日志记录(日志管理章节):binlog,默认是没有开启的

存储引擎层:(类似于Linux中的文件系统)

负责根据SQL层执行的结果,从磁盘上拿数据

将16进制的磁盘数据,交由SQL结构化化成表

连接层的专用线程返回给用户。

MySQL在Linux中的安装、部署

使用仓库的方式安装

无论是使用哪种方式进行安装首先我们需要去获取mysql的安装包:

mysql官网:www.mysql.com

首先需要下载mysql软件包:

1、进入MySQL官网

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

2、进入MySQL社区版下载

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

3、使用yum方式下载MySQL

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

4、下载对应版本的软件包

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

5、这里可以不登录直接下载软件包

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

6、复制下载链接

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

7、然后进入到linux命令行中使用命令下载该软件包:

rpm -i https://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm
警告:/var/tmp/rpm-tmp.soD57S: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY

8、然后安装mysql-server

yum install my-server -y

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

9、这里可以查看一下所有的mysql软件包:

rpm -aq | grep mysql 

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database

注意:如果显示为7个软件包就正确

10、启动mysql服务

systemctl start mysqld

11、查看该服务的状态

systemctl statsus mysqld

初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL,MySQL,linux,mysql,linux,数据库,运维,MSDB,database 

这里显示服务正常运行就表示sql服务已经成功启动了

如果上面一些正常我们就可以正常使用mysql了 

12、注意在输入之前我们可以查询一下默认的登录mysql的密码:

sudo grep 'temporary password' /var/log/mysqld.log

2023-07-05T13:57:47.521864Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iOMZ>nuaf9oq(最后这里就是默认密码)

这条命令的结果会显示默认密码,下一步会使用

13、这时候就可以尝试登录MySQL了

mysql -u root -p
Enter password: (这里需要输入密码就输入刚才查找到的默认密码)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

13、然后我们就可以正常的进入sql了,但是当我们尝试想要查看一下数据库时却会报错

因为我们需要修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密码';

注意:这里的密码必须包含字母大小写+数字+特殊字符

14、这时候我们就可以正常的查询到数据库了

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.15 sec)

mysql> 

到这里数据库的安装就完成了,我们可以快乐的使用MySQL了!

 

到了这里,关于初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 构建安全架构的 Azure 云:深入了解零信任体系结构

    零信任正成为云安全的一种日益重要的模型,特别是在 Azure 云环境中。随着越来越多的企业迁移到云,确保安全的云环境已经成为当务之急。“零信任模型”正迅速成为实现这种安全性的主要方法。要在Azure云中实现零信任模型,需要仔细的规划和执行。本文将讨论 Azure Cl

    2024年02月10日
    浏览(93)
  • 了解多人游戏下的客户端与服务器体系结构

    直连模式下,选择一个玩家充当服务器(房主)。如果游戏出现不同步,那么均按房主的世界来,玩家1可以作弊修改其游戏来影响其他玩家的世界 针对两个玩家来说,直连连接质量更好,延迟小 如果玩家数量很多,不同玩家间的通信则需要靠房主为中介,那通信质量与房主

    2024年02月12日
    浏览(37)
  • MySQL体系结构

     🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL-进阶篇 🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏 📜 感谢大家的关注! ❤️ 目录 🚀 MySQL体系

    2024年01月22日
    浏览(90)
  • 简述MySQL体系结构与MySQL的 安装

    简述MySQL体系结构 安装部署MySQL(使用yum以及通用二进制方式) 1.简述MySQL体系结构 MySQL分为四层体系结构,分别是: 连接层 SQL层 插件式存储引擎层 物理文件层 1.连接层: 由connection pool(连接池)构成 目的:解决资源频繁分配、释放所造成的问题,而连接池的作用相当于一

    2024年02月12日
    浏览(48)
  • 【Linux】冯诺依曼体系结构以及操作系统的初步认知

    🏖️作者:@malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 本篇文章讲解是冯诺依曼体系结构以及操作系统的初步认知。 我们常见的计算机,如笔记本。我们不常见的计算机,如服

    2024年02月03日
    浏览(85)
  • 『Linux从入门到精通』第 ⑫ 期 - 深入了解冯诺依曼体系结构与操作系统(Operator System)

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2024年02月10日
    浏览(49)
  • 『Linux从入门到精通』第 ⑫ 期 -深入了解冯诺依曼体系结构与操作系统(Operator System)

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2023年04月23日
    浏览(84)
  • MySQL的体系结构与SQL的执行流程

    如果你在使用MySQL时只会写sql语句的,那么你应该看一下《MySQL优化的底层逻辑》。如果你只了解到sql是如何优化的,那么你应该通过本文了解一下Mysql的体系结构以及sql语句的执行流程。 先来看下MySQL的体系结构,下图是在MySQL官方网站上扒下来的,所以有很高的权威性和准

    2024年02月05日
    浏览(127)
  • 单片机原理与应用以及C51编程技术——硬件体系结构梳理

    内部程序存储器ROM :4K的flash程序存储器; 寄存器区 :4个寄存器区,每个区有R0-R7八个工作寄存器; 8位并行输入输出端口 :P0、P1、P2和P3; 定时/计数器 :2个16位的定时/计数器 T0、T1; 串型口 :全双工串行端口(RXD:接收端、TXD发送端); 中断系统 :设有5个中断源(T

    2023年04月10日
    浏览(98)
  • 【Linux深入剖析】冯·诺依曼体系结构以及操作系统的深入理解

    🍁你好,我是 RO-BERRY 📗 致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 冯·诺依曼体系结构,也被称为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储

    2024年03月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包