【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。

MySQL基础篇-概述


MySQL学习相关笔记:https://dhc.pythonanywhere.com/entry/share/?key=3ad29aad765a2b98b2b2a745d71bef715507ee9db8adbec98257bac0ad84cbe4

MySQL学习相关笔记:https://www.letianbiji.com/mysql/

MySQL 8.0官方文档:https://dev.mysql.com/doc/refman/8.0/en/


在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。


一、数据库相关概念

在这一部分,我们先来讲解三个概念:数据库数据库管理系统SQL

名称

全称

简称

数据库

存储数据的仓库,数据是有组织的进行存储

DataBaseDB

数据库管理系统

操纵和管理数据库的大型软件

DataBase Management System (DBMS)

SQL

操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准

Structured Query Language (SQL)

而目前主流的关系型数据库管理系统的市场占有率排名如下:

  • Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。
  • MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。
  • 目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。SQL ServerMicrosoft 公司推出的收费的中型数据库,C#.net等语言常用。
  • PostgreSQL:开源免费的中小型数据库。
  • DB2IBM公司的大型收费数据库产品。
  • SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
  • MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与MySQL数据库有很好的兼容性。

而不论我们使用的是上面的哪一个关系型数据库,最终在操作时,都是使用SQL语言来进行统一操作,因为我们前面讲到SQL语言,是操作关系型数据库的 统一标准 。所以即使我们现在学习的是MySQL,假如我们以后到了公司,使用的是别的关系型数据库,如:Oracle、DB2、SQLServer,也完全不用担心,因为操作的方式都是一致的。



二、MySQL数据库

1. 版本介绍

官方: https://www.mysql.com/

MySQL官方提供了两种不同的版本:

  • 社区版本(MySQL Community Server

免费, MySQL不提供任何技术支持

  • 商业版本(MySQL Enterprise Edition

收费,可以使用30天,官方提供技术支持

本次我们选择下载MySQL Community Server 8.0.26版本。


2. 软件下载

下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html


3. 安装包方式安装-Windows版

(1)双击官方下来的安装包文件

(2)根据安装提示进行安装

注意:第一种方式Developer Default默认安装到C盘,C:\Program Files\MySQL\MySQL Server 8.0\,这里选择Custom自定义安装。

选择产品窗口,可以定制需要安装的产品清单。例如,选择“MySQL Server 8.0.26-X64”后,单击“→”添加按钮,即可选择安装MySQL服务器,如图所示。采用通用的方法,可以添加其他你需要安装的产品。

此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接。

上面为默认安装界面,ProgramData目录(这是一个隐藏目录),如果没显示,需要到此电脑中的查看中勾选隐藏项目项。如果自定义安装目录,请避免“中文”目录。另外,建议服务目录和数据目录分开存放。

此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中 对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接。

安装MySQL的相关组件,这个过程可能需要耗时几分钟,耐心等待。

第一个选项:

使用强密码加密进行身份验证,采用SHA256基础的密码加密方法(已升级)

第二个选项:

使用传统身份验证方法(保留MySQL 5.x兼容性)

如果我们选择了强密码加密进行身份验证,虽然MySQL采用了强密码加密,但是我们的图形化管理软件(SQLyog、Navicat等)却没有采用强密码加密,这回直接导致SQLyog访问不了我们的MySQL,所以这里我们要选择传统的加密方法。

设置MySQL中root用户的密码,两次一致。一定记住该密码,这里为了方便设置为123456

设置服务器名称窗口,如图所示。该服务名会出现在Windows服务列表中,也可以在命令行窗口中使用该服务名进行启动和停止服务。

如果希望开机自启动服务,也可以勾选“Start the MySQL Server at System Startup”选项(推荐)。

下面是选择以什么方式运行服务?可以选择“Standard System Account”(标准系统用户)或者“Custom User” (自定义用户)中的一个。这里推荐前者。

(3)配置

安装好MySQL之后,还需要配置环境变量,这样才可以在任何目录下连接MySQL

A. 在此电脑上,右键选择属性

B. 点击左侧的 "高级系统设置",选择环境变量

C. 找到 Path 系统变量, 点击 "编辑"

D. 选择 "新建" , 将MySQL Server的安装目录下的bin目录添加到环境变量


4. 启动停止服务

MySQL安装完成之后,在系统启动时,会自动启动MySQL服务(cmd:services.msc),我们无需手动启动了。

当然,也可以手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令:

# 启动mysql80服务
net start mysql80
# 停止mysql80服务
net stop mysql80

以管理员方式运行:windows搜索cmd-右键-(更多)-以管理员身份运行。

注意 : 上述的 mysql80 是我们在安装MySQL时,默认指定的mysql的系统服务名,不是固定的,如果未改动,默认就是mysql80。


5. 客户端连接测试

(1)方式一:使用MySQL提供的客户端命令行工具

这里要先以管理员身份运行cmd,启动MySQL服务后,再输入密码连接数据库。

(2)方式二:使用系统自带的命令行工具执行指令

mysql [-h 127.0.0.1] [-P 3306] -u root -p
参数:
    -h : MySQL服务所在的主机IP
    -P : MySQL服务端口号, 默认3306
    -u : MySQL数据库用户名
    -p : MySQL数据库用户名对应的密码
[]内为可选参数,如果需要连接远程的MySQL,需要加上这两个参数来指定远程主机IP、端口,如果
连接本地的MySQL,则无需指定这两个参数。

注意: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量。


6. 卸载-Windows版

(1)停止MySQL服务

win+R 打开运行,输入 services.msc 点击 "确定" 调出系统服务。

(2)卸载MySQL相关组件

打开控制面板 ---> 卸载程序 ---> 卸载MySQL相关所有组件

(3)删除MySQL安装目录

(4)删除MySQL数据目录

默认数据存放目录是在 C:\ProgramData\MySQL,直接将该文件夹删除。

(5)再次打开服务,查看是否有MySQL卸载残留

如果已将MySQL卸载,但是通过任务管理器 ---> 服务,查看到MySQL服务仍然残留在系统服务里。

解决办法:

  • 以管理员方式运行cmd命令行,输入以下命令:
  • sc delete 服务名称(如MySQL80)

这样可以实现删除服务。

最后,重启电脑即可生效。


7. 在同一台电脑上安装两个版本的mysql

在C盘和D盘对应的安装目录下都新建文件夹MySQL Server x.x,这里自定义软件安装目录在D盘,数据库中的数据存放在C盘

8. 相关问题补充

(1)MySQL8.0新加密方式连接第三方客户端工具出错问题

除MySQL自带的客户端工具外,我们还可以使用第三方客户端工具。这里介绍一下如何解决当用Navicat Premium连接MySQL数据库时报的2059错误,如下图所示:

这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。为解决这个问题,可以将MySQL用户登录的加密规则修改为mysql_native_password,成功连接MySQL数据库服务器后,依次输入如下语句:

对于用户root:

# 使用mysql数据库
use mysql;
# 设置密码永不过期
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 修改加密规则,并设置新的用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; 
# 刷新权限
FLUSH PRIVILEGES;

对于新创建的用户test:

# 使用mysql数据库
use mysql;
# @后的%表示任何主机
ALTER USER 'test'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# @后的%表示任何主机
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限
FLUSH PRIVILEGES;

(2)windows下一般使用的my.ini(mysql5.7、zip安装)

[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:\\Mysql\\mysql-5.7.31-winx64
datadir=D:\\Mysql\\mysql-5.7.31-winx64\\data
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

三、数据模型

1. 关系型数据库(RDBMS)

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

而所谓二维表,指的是由行和列组成的表,如下图(就类似于Excel表格数据,有表头、有列、有行,还可以通过一列关联另外一个表格中的某一列数据)。我们之前提到的MySQL、Oracle、DB2、SQLServer这些都是属于关系型数据库,里面都是基于二维表存储数据的。简单说,基于二维表存储数据的数据库就成为关系型数据库,不是基于二维表存储数据的数据库,就是非关系型数据库。

特点:

A. 使用表存储数据,格式统一,便于维护。

B. 使用SQL语言操作,标准统一,使用方便。


2. 数据模型

MySQL是关系型数据库,是基于二维表进行数据存储的,具体的结构图下:

  • 我们可以通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库。
  • 可以使用SQL语句,通过数据库管理系统操作数据库,以及操作数据库中的表结构及数据。
  • 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包含多行记录。



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
存储 SQL 关系型数据库
MySQL底层概述—2.InnoDB磁盘结构
InnoDB磁盘结构主要包括表空间(Tablespaces)、数据字典(Data Dictionary)、双写缓冲区(Double Write Buffer)、重做日志(redo log)和撤销日志(undo log)。其中,表空间分为系统、独立、通用、Undo及临时表空间,分别用于存储不同类型的数据。数据字典从MySQL 8.0起不再依赖.frm文件,转而使用InnoDB引擎存储,支持事务原子性DDL操作。
146 100
MySQL底层概述—2.InnoDB磁盘结构
|
3天前
|
缓存 算法 关系型数据库
MySQL底层概述—1.InnoDB内存结构
本文介绍了InnoDB引擎的关键组件和机制,包括引擎架构、Buffer Pool、Page管理机制、Change Buffer、Log Buffer及Adaptive Hash Index。
147 97
MySQL底层概述—1.InnoDB内存结构
|
1天前
|
缓存 算法 关系型数据库
MySQL底层概述—8.JOIN排序索引优化
本文主要介绍了MySQL中几种关键的优化技术和概念,包括Join算法原理、IN和EXISTS函数的使用场景、索引排序与额外排序(Using filesort)的区别及优化方法、以及单表和多表查询的索引优化策略。
MySQL底层概述—8.JOIN排序索引优化
|
2天前
|
SQL 关系型数据库 MySQL
MySQL底层概述—7.优化原则及慢查询
本文主要介绍了:Explain概述、Explain详解、索引优化数据准备、索引优化原则详解、慢查询设置与测试、慢查询SQL优化思路
MySQL底层概述—7.优化原则及慢查询
|
3天前
|
存储 关系型数据库 MySQL
MySQL底层概述—6.索引原理
本文详细回顾了:索引原理、二叉查找树、平衡二叉树(AVL树)、红黑树、B-Tree、B+Tree、Hash索引、聚簇索引与非聚簇索引。
MySQL底层概述—6.索引原理
|
3天前
|
存储 缓存 关系型数据库
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
MySQL底层概述—5.InnoDB参数优化
|
8天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
79 42
|
3天前
|
存储 SQL 关系型数据库
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
|
3天前
|
存储 缓存 关系型数据库
MySQL底层概述—3.InnoDB线程模型
InnoDB存储引擎采用多线程模型,包含多个后台线程以处理不同任务。主要线程包括:IO Thread负责读写数据页和日志;Purge Thread回收已提交事务的undo日志;Page Cleaner Thread刷新脏页并清理redo日志;Master Thread调度其他线程,定时刷新脏页、回收undo日志、写入redo日志和合并写缓冲。各线程协同工作,确保数据一致性和高效性能。
MySQL底层概述—3.InnoDB线程模型
|
1天前
|
存储 缓存 关系型数据库
MySQL底层概述—9.ACID与事务
本文介绍了数据库事务的ACID特性(原子性、一致性、隔离性、持久性),以及事务控制的演进过程,包括排队、排它锁、读写锁和MVCC(多版本并发控制)。文章详细解释了每个特性的含义及其在MySQL中的实现方式,并探讨了事务隔离级别的类型及其实现机制。重点内容包括:ACID特性(原子性、持久性、隔离性和一致性的定义及其实现方式)、事务控制演进(从简单的全局排队到复杂的MVCC,逐步提升并发性能)、MVCC机制(通过undo log多版本链和Read View实现高效并发控制)、事务隔离级别(析了四种隔离级别(读未提交、读已提交、可重复读、可串行化)的特点及适用场景)、隔离级别与锁的关系。

相关产品

  • 云数据库 RDS MySQL 版