MySQL(安装和卸载、数据库存储原理图)

一、MySQL的安装和卸载

1.安装 MySQL(压缩版)

(1)解压文件到指定目录下(路径不能出现中文),在安装目录中创建 data 文件夹和配置文件 my.ini。

(2)配置文件 my.ini

mysqld

skip_grant_tables

设置3306端口

port=3306

设置mysql的安装目录

basedir=D:\\MySQL\\mysql-8.0.26-winx64

设置mysql数据库的数据的存放目录

datadir=D:\\MySQL\\mysql-8.0.26-winx64\\data

允许最大连接数

max_connections=200

允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

服务端使用的字符集默认为UTF8

character-set-server=utf8mb4

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

默认使用"mysql_native_password"插件认证

default_authentication_plugin=mysql_native_password

client

#password = your_password

设置mysql客户端连接服务端时默认使用的端口

port=3306
default-character-set=utf8mb4

mysql

设置mysql客户端默认字符集

default-character-set=utf8mb4

(3)配置环境变量

粘贴 mysql 安装目录下的 bin 目录

(4)以管理员身份运行 cmd

mysqld --initialize --console :记录第一次初始化的密码(2Zf!8S-HZzUp)

mysqld --install mysql服务名 :安装 mysql 服务

sc delete mysql服务名:删除 mysql 服务

mysql -uroot -p:登录 mysql,

alter user root@localhost identified by "密码":修改临时密码为自己的密码。

然后用修改后的密码重新登录 mysql,登录进去便成功。

2.卸载 MySQL

(1)关闭 MySQL 服务

以管理员身份运行 cmd,输入 net stop mysql ,关闭 MySQL服务。

(2)删除 MySQL 服务

输入 sc delete mysql,删除MySQL 服务。

(3)卸载、删除

win+R 输入 control 打开控制面板,点击卸载程序,选择与 MySQL 相关的程序全部卸载。然后找到安装目录,删除文件夹(若安装在 C 盘会有隐藏文件,还需打开 ProgramFiles 和 ProgramData,找到所有与 MySQL 相关的子目录删除)。

(4)删除注册表

win+R 输入 regedit 打开注册表,找到以下文件夹删除:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQL

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQL

二、数据库存储原理图

1.连接层

客户端与服务端通过通信协议传输 SQL 语句,提供与 MySQL 服务器建立连接的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET 等,它们通过各自 API 技术与 MySQL 建立连接。

2.MySQL 服务层

(1)查询缓存:接收 SQL 后,先检查是否有 "命中规则" 的缓存结果。若有,直接返回执行结果,避免后续解析、优化等耗时操作,提升查询效率。

(2)若没有找到对应的查询结果,则需进行查询解析、优化等过程,再返回执行结果。

① 解析器:若查询缓存未命中,解析器会解析 SQL 的语法规则,确保 SQL 语句格式合法、关键词正确。

② 优化器:基于解析后的 SQL,生成最优执行计划(如选择合适的索引、确定表的连接顺序),以最高效的方式执行查询。

③ 执行器:根据优化器的计划,操作存储引擎(如 InnoDB、MyISAM)执行具体逻辑,最终返回值结果。

3.存储引擎层

存储引擎负责在 MySQL 中存储数据、提取数据,服务器通过 API 和存储引擎进行通信,API 屏蔽了不同存储引擎之间的差异 。现在有很多种存储引擎,各有各的特点,最常见的是 InnoDB 和 MyISAM。

MyISAM 和 InnoDB 的区别?

  1. 事务:MyISAM不支持事务
  2. 存储文件:innodb(frm、ibd MyISAM: frm、MYD、MYI
  3. 数据行锁定:MyISAM 不支持
  4. 全文索引:INNODB 不支持,所以 MyISAM 做 select 操作速度快
  5. 外键约束:MyISAM 不支持

两种引擎的优缺点:

InnoDB

  • 可靠性更强,或者业务需求要求使用事务时,使用 InnoDB
  • 表更新和查询相当频繁,并且表锁定的情况比较大,默认使用 InnoDB
  • 需要大量的修改和插入时,使用 InnoDB

MyISAM

  • 做很多的数据计算时,mysql 的底层系统库就是 MyISAM
  • 修改和插入不频繁时,执行大量的select查询,MyISAM 比 InnoDB 更适合
  • 不支持事务(缺点)

三、练习

根据以下需求完成图书管理系统数据库及表设计,并建库建表,截图创建表的详细信息(desc 表名),不用添加数据

  1. 用户表:字段: 姓名,用户名,密码,电话,住址,专业及年级
  2. 图书表:字段: 图书名,分类,介绍,出版社,入库时间
  3. 借阅登记表:借阅人、图书名、借阅时间、是否归还

首先在 cmd 登录 mysql,再创建并使用 library 数据库。

1.用户表

2.图书表

3.借阅登记表

相关推荐
苹果醋33 小时前
JAVA面试汇总(二)多线程(五)
运维·vue.js·spring boot·nginx·课程设计
m***记3 小时前
Python字符串操作:如何判断子串是否存在
linux·服务器·python
添砖java‘’3 小时前
探索Linux进程:从理论到实践
linux·进程
JustNow_Man4 小时前
Cline中模型识别任务与clinerules相关性的实现逻辑
linux·运维·ubuntu
小白银子4 小时前
零基础从头教学Linux(Day 56)
linux·运维·python
你想考研啊4 小时前
Linux下搭建Activemq的Master-Slave(共享文件模式)
linux·运维·activemq
ajassi20004 小时前
开源 Linux 服务器与中间件(十)Mqtt协议和Emqx服务器安装测试
linux·服务器·开源
Teamhelper_AR4 小时前
AR巡检系统:打开工业智能运维的下一幕
运维·ar
道阻且长行则将至!4 小时前
ubuntu中为什么查看CPU的步进?查看命令是什么?
linux·运维·ubuntu·步进·stepping