【MySQL — 数据库基础】深入理解数据库服务与数据库关系、MySQL连接创建、客户端工具及架构解析
目录
1. 数据库服务&数据库&表之间的关系
1.1 复习 my.ini
1.2 MYSQL服务基于mysqld启动而启动
1.3 数据库服务的具体含义
1.4 数据库服务&数据库&表之间的关系
2. 客户端工具
2.1 客户端连接MySQL服务器
2.2 客户端与数据库服务器之间的通讯方式
2.2.1 C/S架构与B/S架构
2.2.2 C/S架构
2.2.3 B/S架构
2.3 图像化客户端工具
3. 创建一个新的连接
4. SQL的简介
4.1 什么是SQL
4.2 SQL分类
5. MySQL架构
6. 存储引擎
6.1 简介
6.2 查看存储引擎
6.3 存储引擎对比
文章介绍
本文主要介绍了数据库服务、客户端工具、SQL语言、MySQL架构以及存储引擎的基本概念和操作。
以上内容涵盖了数据库服务的基础知识,客户端工具的使用,SQL语言的介绍,MySQL的架构和存储引擎的详细信息,为读者提供了一个全面的数据库知识概览。
1. 数据库服务&数据库&表之间的关系
- 数据库服务器是指在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库;
- 一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器、数据库和表的关系如下:
我们把数据库安装好之后,在服务列表中,就会有MYSQL的服务项 ,并且处于正在运行的状态;
要确保当前系统有一个可以运行的数据库服务即可,不用的可以通过属性调整启动类型,建议使用的MYSQL修改成自动;
1.1 复习 my.ini
我们在上次学习MYSQL配置文件时,通过记事本打开my.ini,在服务区域,我们配置了端口号,mysql服务在本地的数据目录,字符集,排序规则,存储引擎,和产生日志对应的目录(在my.ini中配置好产生日志的路径即可);
里面的内容中有一个[mysqld]节点,mysqld.exe 在 my.ini 配置文件中,对应的是[mysqld]节点;
1.2 MYSQL服务基于mysqld启动而启动
数据库安装成功之后,运行起来了一个程序,对外提供了一个网络服务,这个服务我们起的名字是MYSQL8.0,这个服务是怎么启动起来的呢?
mysqld.exe是在计算机上安装的数据库服务,它启动起来,意味着mysql服务也启动了;
我们可以配置mysql服务为自启动,mysql服务会跟随系统启动而启动,就可以对外提供持续(7*24h)的数据库服务;
目前安装在本机的MYSQL,是在一个开发环境中,还没有让数据库保存用户业务产生的大量的数据,就开发机而言,随时可以关闭数据库服务;
但是在公司的生产环境(线上环境),一般是把MYSQL安装在一个专用的服务器中(配置较高的电脑),这个服务器只要启动,如果没有产品迭代,或者大规模更新,这个数据库服务一般是不会关闭的,7*24h持续对外界提供服务,因为业务是不能停的;
mysqld后面的d表示deamon,是一个守护程序,所有的服务一般是以守护进程,常驻在系统中的;
1.3 数据库服务的具体含义
数据库服务,可以提供数据库的功能,让用户把数据存入数据库中;对外连接客户端,为客户端提供请求的地址,让客户端找到数据库所在的这台服务器,这个过程就是一个服务;
1.4 数据库服务&数据库&表之间的关系
数据库服务,和相关的记录数据的结构
安装数据库之后,本地提供了数据库服务,数据库服务中包含了很多个数据库,而不是只有一个数据库;比如说,可以在MYSQL数据库服务中,创建多个数据库
每一个应用程序,只要有数据产生,都有一个与之对应的一个数据库,我们就可以通过学习到的数据库操作,在提高MYSQL服务的机器上,创建属于自己的数据库;
所以一定要把数据库和数据库服务分开,一个数据库服务中,可能包含了很多个数据库;
每一个数据库保存着不同的数据,比如教务系统,会保存一些关于课表,作业,师生的一些信息,这些信息会被设计成一个个的表,这些信息会存放在不同的表中,用于区分:
这就是数据库服务与数据库之间的关系,数据库中又包含了各自应用程序所涉及到的一些数据,按照数据不同发分类,将这些数据分成表;如学生表中,记录的就是关于学生的信息,每一条学生信息,都会变成一个记录;
对于学生记录,一个学生信息可以在一个表中生成一个记录:
关于学生信息的信息项,可以继续加,如性别,年龄等待这些信息项,包括表中的学号,姓名,班级这些关于学生信息的描述,把每一个都叫做一列,这个描述叫做字段/列,类似面向对象中类的属性;
在软件设计的时候,先要根据需求内容,把类抽象出来,然后定义好类中的属性;数据库中的表可以类比成这个类,表中的每一列可以类比成类中的每一个属性,一条数据(所有列组成的一条记录),叫做一个数据行,类似面向对象中的使用类实例的对象;
总结
- 一台计算机提供的数据库服务中,可以创建多个数据库,不同的数据库记录不同的数据,每个数据库中有很多张数据表,每张数据表有很多条数据行,每条数据行由很多个数据列组成的;
- 数据库服务,数据库,表,行,列/字段是一个依次包含的关系;
- 在我们创建表时,强烈建议每一张表都有编号列/编号字段;
2. 客户端工具
2.1 客户端连接MySQL服务器
回顾
在my.ini文件中:
- [client]节点下的配置,是所有关于客户端的一些工具;
- [mysql]节点下的配置,是关于 mysql.exe ;
注意:mysqld.exe 是服务端的,mysql.exe 是客户端工具;
通过终端指令运行 mysql.exe
- 1. 来到对应目录找到 mysql.exe,点击右键,通过终端打开,并输入mysql运行指令即可;
- 2. 如果直接打开终端,我们可以通过cd命令进入到目标路径;
我们要去mysql.exe的工作目录,我们就可以输入cd,并且拷贝PS要去到的目录:
cd 就是改变目标路径的意思;
- 3. 输入启动 mysql 的指令
- 4. 输入密码;
- 5. 配置好环境变量可直接在cmd执行mysql命令
补充
- 6. 输入密码错误
- 7. 使用快捷方式打开 mysql.exe 客户端
- 下面蓝色的路径,为复制的快捷方式的目标文件路径;
- 第一个双引号中的路径和我们在 cmd 时指定的目标路径是相同的,”-uroot” " -p"也是需要我们手动输入的;
- 后面表示指定默认字符集,utf8mb4,意味着在和服务器通信的过程中,使用utf8mb4来进行编码,就不会出现乱码的问题,所以推荐使用 UniCode结尾的快捷方式;
mysql.exe客户端只是在平时查看数据库信息的时候会用到,在编码的时候几乎不会用;
2.2 客户端与数据库服务器之间的通讯方式
2.2.1 C/S架构与B/S架构
- C/S架构即客户端/服务器架构模式
- B/S架构即浏览器/服务器架构模式
2.2.2 C/S架构
C/S架构全称是客户端/服务器(Client/Server)架构,是常用的两层架构。客户端需要安装客户端软件,服务端程序运行在服务器上,提供Socket或数据库服务。使用客户端与MySQL数据库服务器通讯属于C/S架构
- 常用于固定用户群体中。常见的C/S架构的应用,比如QQ,CCTALK,各种网络游戏等等,一般需要安装并且与服务器进行网络通信的都属于此类。
优点
- 大部分业务都可以在客户端完成,充分利用本地的计算机资源
- 响应速度快
- 个性化定制能力强
- 面向相对固定的用户群,对信息安全的控制能力强
缺点
- 需要安装客户端才能使用
- 维护成本高,任何一台电脑上的客户端出现问题都需要进行维护,升能过程繁琐
2.2.3 B/S架构
B/S架构全称是浏览器/服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构一种改进。由于所有的业务逻辑都由服务器程序处理,所以客户端仅使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。
B/S架构常用于对公开用户提供的网络服务中。比如常见的大型网站都属于此类。
优点
- 客户端零维护,只需要安装一个浏览器即可
- 所有业务都集中在服务器端,业务扩展非常方便
- 维护成本低,只需要维护服务器即可
缺点
- 服务器安全与业务处理能力需要花费很大精力与成本
- 不同浏览器支持不尽人意
我们知道,数据库服务是一个网络服务,客户端是一个应用程序;
当客户端向服务器发送请求的时候,必须要带着访问目标,也就是说,这个客户端要访问哪一个数据库,访问数据库中的哪一个表,访问这个表的哪一行,或者访问哪一行中的哪一列,都是可以明确标注出来的;
服务器就会把处理的结果返回给客户端,客户端接收到这个结果,就完成了一次客户端与服务器完整的通信;
对于客户端与服务器之间的交互模型,我们称之为C/S架构(Client/Server);
客户端与服务器之间是通过网络进行交互的,我们现在使用本机客户端来访问本机服务器,是不是通过网络来连接的呢?是不是C/S架构呢?
- 虽然我们访问的是本机的服务,但是还是通过网络服务的,只不过客户端与服务器在同一台电脑上而已;
- MYSQL启动后,是通过网络服务连接的,肯定是对外提供网络服务的,对于本机来说,没有其他的端口可以提供给本机客户端访问的本机服务器;
- 每台电脑上都有一个环回网卡,本地有一个固定的IP:127.0.0.1,代表本机的IP,不管当前机器也没有上网,只要访问127.0.0.1,访问的就是本机;也就是说,无论本机有没有网络,这个IP始终访问的都是本机地址;
总之,MYSQL是提供网络进行访问的;
如果在工作中连接数据库,可以指定IP地址去连接相应的服务器,这个服务器可能是内网的,也可能是外网的;这时候会出现一个安全性问题:
- 如果把端口号发布到公网/外网上的时候,其他机器都可以访问该服务器,一旦有人把这个用户名和密码猜对之后,就可能会对我们的数据库进行入侵,对数据库数据进行加密,破坏等等......也就是说,如果把服务公开到公网,可能会给黑客带来可乘之机;
鉴于这样的安全问题,云服务器厂商,或者自建机房,有很多技术手段可以拦截,比如说:可以通过防火墙,或者白名单,来限制可以连接服务器的机器;
简单介绍一下白名单的作用:
把指定IP加到白名单中,这个白名单IP上对应的机器才可以连接服务器,MYSQL安装完成之后,默认的安全策略就是白名单策略,本机可以连,但是在同一个网段下的机器无法连接,除非把这个机器的IP加到白名单中;所以,只有白名单中的机器才可以访问目标主机;
在公司里,一般都是把服务器部署到内网中,通过外网是无法连接上数据库服务器的;
当外网无法连接上数据库服务器的时候,可以通过跳板机去连接服务器;
可以先通过连接跳板机A,然后通过A中的命令行工具,来连接数据库服务器,这样的方式也就解决了安全问题,这是公司中常用的方式;
2.3 图像化客户端工具
图像客户端工具主要用于编写SQL断码,SQL是一个操作数据库的工具,也可以算是一种变成语言,也需要编辑器编写SQL语句;如果使用客户端命令行编写SQL语句,效率和体验都不好,所以需要图形化客户端工具;
如果系统中没有 workbench,可以直接打开之前下载的安装包:
点击add:
添加workbench
也可以去官网下载:
类似于workbench这样的图形化客户端工具,还有:
3. 创建一个新的连接
所有可视化工具都几乎分为这几个区
4. SQL的简介
4.1 什么是SQL
SQL(Structured Query Language)是结构化查询语言的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库。
我们知道MYSQL是关系型数据库,这时候需要通过MYSQL来存储数据,我们对数据库的所有的操作该如何进行呢?我们如何操作数据库呢?
首先,我们需要明确一点,数据库是用来保存数据的;那么操作数据库,就要使用工具/语言,就是SQL;
SQL是一个标准,也是一门语言,在所有数据库中,都用SQL来操作数据库,只不过不同数据库,会在这个标准上进行一些细微的改动,比如一些关键字会作一些调整,查询的先后顺序会作一些调整;如 Sever SQL,Oracle,MySQL......可能略有不同,包括一些编写处理业务的程序等等,但是大体上是一样的;
在数据库层面,通过SQL这门语言,来编写数据库相应的操作;SQL是一门语言,意味着也可以定义一些变量,处理一些业务;
在一些金融行业,有些业务的代码中业务逻辑非常少,把大量的业务逻辑放在数据库中执行,就相当于我们用Java代码写的一些逻辑实现,全部用SQL语言实现了一遍,让这些逻辑在数据库中执行;但是随着数据库处理的数据量越来越大,那么对数据库的性能要求越来越高,把这些业务逻辑又搬回到代码层层面,让数据库专门发挥对数据的存储功能,本身这个SQL是一门针对数据库操作的语言,和数据库是两个概念,不要弄混了;
对于学习SQL语言,因为数据库现在专门用于存储数据,我们只需要学习对数据的增删查改和稍微复杂一点的查询即可;因为查询有表关联,我们在查询的时候,把关联关系处理清楚即可支撑我们处理业务;
4.2 SQL分类
DDL【Data Definition Language】 | 数据定义语言,用来维护存储数据的结构代表指令:create,drop,alter |
DML【Data Manipulation Language】 | 数据操纵语言,用来对数据(这里的数据可以理解为数据行)进行操作代表指令:insert,delete,update,select |
DCL【Data Control Language】 | 数据控制语言,主要负责权限管理和事务代表指令:grant,revoke,commit |
5. MySQL架构
MySQL8.0服务器是由连接池、服务管理工具和公共组件、NoSQL接口、SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。MySQL还为各种编程语言提供了一套用于外部程序访问服务器的连接器。整体架构图如下所示:
6. 存储引擎
6.1 简介
存储引擎是MySQL数据库处理数据的核心组件,不同的存储引擎对数据如何存储、索引、更新和查询的实现方式各有不同,在不同的业务场景可以选用合适的存储引擎。MySQL服务器采用可插拔的存储引擎架构,在服务器运行时可以动态的加载和卸载。
6.2 查看存储引擎
查看当前服务器支持哪些存储引擎可以使用SHOW ENGINES语句,结果如下图所示INNODB默认的存储引擎:
6.3 存储引擎对比
Notes:
- Implemented in the server,rather than in the storage engine.
- Compressed MyISAM tables are supported only when using the compressed row format.Tables usingthe compressed row format with MyISAM are read only.
- Implemented in the server via encryption functions.
- Implemented in the server via encryption functions;In MySQL5.7 and later,data-at-restencryption is supported.
- Implemented in the server via encryption functions;encrypted NDB backups as of NDB
- 8.0.22;transparent NDB file system encryption supported in NDB8.0.29 and later.
- Support for FULLTEXT indexes is available in MySQL5.6 and later.
- Support for geospatial indexing is available in MySQL5.7 and later.
- InnoDB utilizes hash indexes internally for its Adaptive Hash Index feature.
相关文章:

【MySQL — 数据库基础】深入理解数据库服务与数据库关系、MySQL连接创建、客户端工具及架构解析
目录 1. 数据库服务&数据库&表之间的关系 1.1 复习 my.ini 1.2 MYSQL服务基于mysqld启动而启动 1.3 数据库服务的具体含义 1.4 数据库服务&数据库&表之间的关系 2. 客户端工具 2.1 客户端连接MySQL服务器 2.2 客…...

Three.js相机Camera控件知识梳理
原文:https://juejin.cn/post/7231089453695238204?searchId20241217193043D32C9115C2057FE3AD64 1. 相机类型 Three.js 主要提供了两种类型的相机:正交相机(OrthographicCamera)和透视相机(PerspectiveCamera&…...
Unity 开发Apple Vision Pro空间锚点应用Spatial Anchor
空间锚点具有多方面的作用 虚拟物体定位与固定: 位置保持:可以把虚拟物体固定在现实世界中的特定区域或位置。即使使用者退出程序后再次打开,之前锚定过的虚拟物体仍然能够出现在之前所锚定的位置,为用户提供连贯的体验。比如在一…...

BGP的六种状态分别是什么?
此文章主要简单介绍下BGP的六种状态 1.Idle BGP会话的初始状态,路由器在此状态下不与任何BGP邻居通信,通常标识会话还没有开始或由于错误而未能启动,一般来说,缺乏去往BGP对等体的路由是导致BGP路由器其状态一直处于idle状态的常…...

IDEA搭建SpringBoot,MyBatis,Mysql工程项目
目录 一、前言 二、项目结构 三、初始化项目 四、SpringBoot项目集成Mybatis编写接口 五、代码仓库 一、前言 构建一个基于Spring Boot框架的现代化Web应用程序,以满足[公司/组织名称]对于[业务需求描述]的需求。通过利用Spring Boot简化企业级应用开发的优势&…...

Reactor
文章目录 正确的理解发送double free问题 1.把我们的reactor进行拆分2.链接管理3.Reactor的理论 listensock只需要设置_recv_cb,而其他sock,读,写,异常 所以今天写nullptr其实就不太对,添加为空就没办法去响应事件 获…...

在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释
在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 是一个非常重要的参数。它用于标识不同的连接实例,特别是在多连接场景下(如同时建立多个TCP或UDP连接)。每个连接都有唯一的<link ID>,通过这个ID…...

[SZ901] JTAG合并功能(类似FPGA菊花链)
SZ901 JTAG支持将JTAG端口组合,最多将四个JTAG变成一个 设置如下 Vivado 识别结果如下 两块板子,变成一组,,可以同时抓取信号,调试! SZ901 已上架淘宝,搜素“SZ901”哦...
paimon中的Tag
TAG 在传统数仓场景中,从传统数据库中导入的事实表数据一般是全量导入,按天分区每天都存储一份全量数据,paimon对此提供了Tag机制,创建TAG时,会对当前数据做一份全量快照,在之后对表的数据进行更新也不会影…...

3分钟读懂数据分析的流程是什么
数据分析是基于商业目的,有目的地进行收集、整理、加工和分析数据,提炼出有价值的 信息的一个过程。整个过程大致可分为五个阶段,具体如下图所示。 1.明确目的和思路 在开展数据分析之前,我们必须要搞清楚几个问题,比…...

uniapp入门 01创建项目模版
0安装 hbuilder x 标准版 1.创建模版工程 2.创建官方 案例工程 index.uvuewen 文件解析 <!-- 模版 标签 --> <template><view></view></template><!-- 脚本 --> <script>export default {data() {return {}},onLoad() {},methods:…...
React 19新特性探索:提升性能与开发者体验
React作为最受欢迎的JavaScript库之一,不断推出新版本以应对日益复杂的应用需求。React 19作为最新的版本,引入了一系列令人兴奋的新特性和改进,旨在进一步提升应用的性能、开发效率和用户体验。 本文将深入探讨React 19的新特性,…...

Hive是什么,Hive介绍
官方网站:Apache Hive Hive是一个基于Hadoop的数据仓库工具,主要用于处理和查询存储在HDSF上的大规模数据。Hive通过将结构化的数据文件映射为数据库表,并提供类SQL的查询功能,使得用户可以使用SQL语句来执行复杂的MapReduce任…...

[LeetCode-Python版] 定长滑动窗口1(1456 / 643 / 1343 / 2090 / 2379)
思路 把问题拆解成三步:入-更新-出。 入:下标为 i 的元素进入窗口,更新相关统计量。如果 i<k−1 则重复第一步。更新:更新答案。一般是更新最大值/最小值。出:下标为 i−(k-1) 的元素离开窗口,更新相关…...

imx6ull qt多页面控制系统(正点原子imx系列驱动开发)
开题答辩完了也考完了四六级,赶紧来更新一下一个月前留下的坑吧 QAQ首先,因为毕业设计需要用到这些知识所以就从网络上找了一个智能车机系统,借鉴了一下大佬的项目思路,缝缝补补一个月终于完成了这一内容。 在这里先感谢从两位大佬…...

OCR:文字识别
使用场景: 远程身份认证 自动识别录入用户身份/企业资质信息,应用于金融、政务、保险、电商、直播等场景,对用户、商家、主播进行实名身份认证,有效降低用户输入成本,控制业务风险 文档电子化 识别提取各类办公文档、合同文件、企…...
SQL Server通过存储过程实现自定义邮件格式并定时发送
在 SQL Server 中,可以通过存储过程实现自定义邮件格式并定时发送。这通常涉及以下几个步骤: 1. 配置 Database Mail:首先需要配置 SQL Server 的 Database Mail 功能。 2. 创建存储过程:编写存储过程来生成自定义邮件格式并发送邮件。 3. 设置 SQL Server 代理作…...
【进阶编程】MVC和MVVM实现前后端分离的实现
在 WPF 开发中,通常使用 MVVM(Model-View-ViewModel)架构来分离视图和业务逻辑,但在某些情况下,你可能希望将 MVC(Model-View-Controller)模式与 MVVM 结合使用。这种结合有时是为了兼顾不同的架…...

HT81297 18W内置升压单声道D类音频功放
1、特征 扩频技术 输出功率 18W(VBAT3.7V, RL4Ω, THDN10%, fN 1kHz) 16W(VBAT3.7V,RL-4Ω,THDN1%,fN1kHz) 8W(VBAT3.3V,RL-8Ω,THDN1%, fN1kHz) VBAr供电范围:3.0V至12V 高效H类升压功能 -自适应功放功率的升压轨,延长电池播放时间 (HT81297A) -可调节最大限流值&…...
linux ipmitool配置机器的BMC(服务器管理后台)
前置:mgnt口和网卡1连接入内网,并分配静态ip 1. 安装 ipmitool Debian/Ubuntu: sudo apt-get update sudo apt-get install ipmitool CentOS/RHEL: sudo yum install ipmitool2. 配置 BMC 的 IP 地址 #打印当前ipmi 地址配置信息。 ipmitool lan p…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 原创笔记:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:《数据结构第4章 数组和广义表》…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
Django RBAC项目后端实战 - 03 DRF权限控制实现
项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...