【MongoDB】分布式数据库入门级学习

https://blog.csdn.net/LikewaterwithLi?spm=1011.2266.3001.5343
SueWakeup

 个人主页:SueWakeup

系列专栏:为祖国的科技进步添砖Java

个性签名:保留赤子之心也许是种幸运吧

本文封面由 凯楠📸友情提供

凯楠📸 - 不夜长安


 目录

MongoDB 相关

数据库排行榜单

MongoDB 中文官网

 菜鸟教程 MongoDB

MongoDB 官方认证 

什么是 MongoDB

​编辑发展历程

​编辑分布式

​编辑NoSQL

什么是分布式

分布式文件存储概述

CAP 定理

CAP理论的核心

什么是 NoSQL

NoSQL概述

ACID vs BASE

BASE理论的核心思想

为什么使用 MongoDB

MongoDB 的特点

解决 MySQL 的 “三高” 问题

MongoDB 的应用场景

MongoDB 的实际应用

如何使用 MongoDB

安装 MongoDB

​编辑rpm 安装

1. 点击下方网址找到相应的系统安装 rpm 软件包。

2. 创建空目录/opt/mongodb用来存放安装包,使用 Xftp 或者 FinShell 将软件包上传。

3. 使用 rpm –ivh [软件包名] 依次下载 mongos、server、shell。 

​编辑

  ​编辑rpm 卸载

1. 使用 systemctl stop mongod 停止 MongoDB 服务。

2. 使用 rpm –qa |grep mongodb 查找安装的包。

3. 分别使用 rpm –e mongodb-org-shell(mongos、server)删除关于MongoDB 的包。

4. 使用 rm -r /var/lib/mongo 删除 MongoDB 的数据目录。(注:系统会多次提示是否删除,可使用 rm –f 命令强制删除,不会弹出多次询问,谨慎使用)

5. 使用 rm -r /var/log/mongodb 删除 MongoDB 的日志记录。

6. 使用 rm /etc/mongod.conf 删除 MongoDB 的配置文件,前两条命令会将文件移至 /etc 目录下,如下图所示。

7. 使用 systemctl status mongod 检验成果。

  ​编辑yum 安装

1. 使用 rpm --import https://www.mongodb.org/static/pgp/server-4.4.asc 导入 MongoDB 的 GPA 公钥,确保下载的安装包是官方的。

2. 使用 vi /etc/yum.repos.d/mongodb-org-4.4.repo 编辑MongoDB 4.4 版本的仓库配置。

3. 使用 yum install -y mongodb-org 安装 MongoDB。

​编辑4. 安装成功后使用 systemctl start mongod 启动服务并使用 systemctl status mongod 查看服务状态。

​编辑yum 卸载

1. 使用 systemctl stop mongod 停止服务。

2. 使用 yum remove mongodb-org* 卸载之前安装的包。

3. 分别使用 rm -r /var/lib/mongodb 和 rm -r /var/log/mongodb 删除 MongoDB 的数据目录和日志记录。

4. 卸载完成后使用 systemctl status mongod 检查成果。​编辑

​编辑docker 安装

1. 使用 systemctl start docker 启动 Docker。

2. 使用 docker pull mongo:4.4 或 latest 拉取 MongoDB 镜像。

3. 使用 docker run --name 【容器名】 -d mongo 运行 MongoDB 容器。

4. 使用 docker exec -it 【容器名】 mongo 进入 MongoDB 的 Shell。

​编辑docker 卸载

1. 使用 docker ps 查看当前正在运行的容器。

2. 使用 docker stop 【容器名】停止容器的运行。

3. 使用 docker rm 【容器名】删除容器。

4. 使用 docker ps –-all 查看所有容器。

配置 MongoDB

1. 使用 systemctl start mongod.service 启动服务。默认无认证登录方式。

2. 使用 systemctl status mongod.service 查看服务状态。 

3. 使用 mongo admin 进入 MongoDB 的 【admin】数据库。没有指定数据库,MongoDB 会使用一个名为【test】的默认数据库,该数据库存储在 data 目录中。

4. 进入成功后在最后一行使用 “>”表示命令行光标起始位置。

5. 输入db.createUser({user:'mongoAdmin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},'readWriteAnyDatabase']})创建用户

6. “user”是新用户的名称,“pwd”是密码。

7. “role”是权限,“db”是数据库名。如“role”:“readWrite”,“db”:“myDatabase”是对“myDatabase”数据库具有读写权限。

8. 常见的 db:admin(管理用户和角色)、local(存储本地集合)、config(存储分片集群的配置信息)。

9. 使用 db.getUsers() 查看当前系统上的所有用户信息。

10. 使用 db.auth(‘用户名’,‘密码’)进行认证,成功返回“1”。注:开启登录认证后,需要使用 mongo admin 进入【admin】数据库才可以使用 db.auth 命令进行登录。

11. 使用 ctrl + c 退出 MongoDB 进程。

12. 删除用户命令:db.dropUser(‘用户名’)

开启登录认证与远程登录

1. 在 Linux 命令行输入 vi /etc/mongod.conf 进入 MongoDB 的配置文件。

2. 找到 network 配置与 security 配置,配置效果如下图所示。

3. 保存后,使用 systemctl restart mongod.service、systemctl status mongod.service 重启 mongoDB服务

4. 开启登录认证后的成功案例,认证后使用 db.getUsers() 验证是否登录。

5. 失败案例,提示权限不足。

​编辑docker 配置 MongoDB

使用环境变量配置

使用配置文件 mongod.conf

GUI 可视化界面

 远程登录说明

1. 使用上方网址下载图形界面化软件。

2. 在 Linux 系统中已经配置好 MongoDB 的网络接口和登录认证。

 3. Linux 的网卡配置中有仅主机模式。

MongoDB 的 CURD

MongoDB 概念解析

Create 创建

Update 更新

Read 读取

Delete 删除

Java 连接 MongoDB

1. 添加 Maven 仓库依赖坐标

2. 创建 MondoDBConn.java 工具类

手机端浏览本文章可能会出现 “目录”无法有效展示的情况,还请谅解! 


MongoDB 相关


数据库排行榜单

网址:https://db-engines.com/en/ranking
数据库排行表单

===》》》数据库排行榜单《《《===icon-default.png?t=N7T8https://db-engines.com/en/ranking


MongoDB 中文官网

网址:https://mongodb.net.cn/manual/tutorial/insert-documents/
MongoDB 中文官网

===》》》MongoDB 中文官网《《《===icon-default.png?t=N7T8https://mongodb.net.cn/manual/tutorial/insert-documents/


 菜鸟教程 MongoDB

网址:https://www.runoob.com/mongodb/mongodb-intro.html
菜鸟教程 MongoDB

===》》》菜鸟教程 MongoDB《《《===icon-default.png?t=N7T8https://www.runoob.com/mongodb/mongodb-intro.html


MongoDB 官方认证 

MongoDB 官方认证

===》》》官方认证《《《===

===》》》关于认证的那些事《《《===


什么是 MongoDB

百度百科 - mongodb

发展历程

  • 2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。
  • 2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。
  • 截至2024年4月23日,MongoDB 社区版的最新版本为 7.0.8 。

分布式

  • 由C++语言编写,基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

NoSQL

  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

什么是分布式


分布式文件存储概述

  • 分布式系统是由多个独立计算机(通常是网络上的计算机)组成的系统,这些计算机通过网络进行通信和协作,以共同完成某个任务或提供某种服务。
  • 分布式文件存储是分布式系统的一种应用,与传统的集中式文件系统相比,分布式文件存储具有更高的可扩展性容错性

一文读懂分布式架构知识体系(内含超全核心知识大图)icon-default.png?t=N7T8https://developer.aliyun.com/article/721007#slide-1

SueWakeup - 神马是分布式?


CAP 定理

图片来源: w3resource

CAP 定理又称布鲁尔定理,对于一个分布式系统而言,不可能同时满足以下三点:

  • 一致性(Consistency):所有节点在同一时间具有相同的数据。
  • 可用性(Availability):保证每个请求不管成功或者失败都有响应。
  • 分区容错性(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的继续运作。

CAP理论的核心
  • 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

w3resource - NoSQLicon-default.png?t=N7T8https://www.w3resource.com/mongodb/nosql.php


什么是 NoSQL

数据库的分类

NoSQL概述

  • NoSQL,指的是非关系型的数据库。也可认作是 Not Only SQL 的缩写,意为不仅限于 SQL。
  • 2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑,其口号是" select fun, profit from real_world where relational=false; "。因此,对NoSQL最普遍的解释是"非关联型的",强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS

ACID vs BASE

ACID

BASE

原子性(Atomicity)

基本可用(Basically Available)

一致性(Consistency)

软状态/柔性事务(Soft state)

隔离性(Isolation)

最终一致性 (Eventual consistency)

持久性 (Durable)

  • 原子性:事务是数据库的最小执行单元,事务的原子性确保数据库操作过程中的所有步骤全部成功或者全部失败
  • 一致性:数据修改前和修改后的状态保持一致
  • 隔离性:一个事务的执行不会被其他事务干扰,一个事务内部的操作和使用的数据,在并发中对其他事务是隔离的
  • 持久性:事务一旦被提交,将对数据库中的数据的改变是永久性的

BASE理论的核心思想

        在分布式系统中,由于网络延迟、节点故障等因素,数据的一致性可能无法实时保证,但是可以保证数据的最终一致性。


为什么使用 MongoDB


MongoDB 的特点

  • 业务并发访问量大
  • 存储的数据格式灵活,不固定,或属于半结构化数据
  • TB级以上的海量数据存储,且数据量不断增加
  • 无需要跨文档或跨表的事务及复杂的join查询支持

解决 MySQL 的 “三高” 问题

  1. 对数据库高并发写入需求
  2. 对海量数据高效率存储访问需求
  3. 对数据库高扩展和高可用的需求

MongoDB 的应用场景

  1. 社交场景,比如朋友圈,附近的人的地点的存储
  2. 游戏场景,比如用户当前装备,得分等
  3. 物流场景,比如快递的位置,状态,途径
  4. 视频场景,比如直播中的点赞数和互动留言等

MongoDB 的实际应用

  • 纽约时报,领先的在线新闻门户网站之一
  • CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用 MongoDB。
  • spike.com,一个音乐电视网络的联营公司, spike.com使用的 MongoDB。

如何使用 MongoDB


安装 MongoDB

  • Linux CentOS 7 操作系统下的三种安装方式

rpm 安装

  • 预先编译好的二进制软件包,不会自动处理软件包之间的依赖关系,会报错,提示缺少依赖需手动安装依赖项,过程繁琐。
1. 点击下方网址找到相应的系统安装 rpm 软件包。

MongoDB官方下载icon-default.png?t=N7T8https://www.mongodb.com/try/download/community

2. 创建空目录/opt/mongodb用来存放安装包,使用 Xftp 或者 FinShell 将软件包上传。

3. 使用 rpm –ivh [软件包名] 依次下载 mongos、server、shell。 

  rpm 卸载

1. 使用 systemctl stop mongod 停止 MongoDB 服务。
2. 使用 rpm –qa |grep mongodb 查找安装的包。
3. 分别使用 rpm –e mongodb-org-shell(mongos、server)删除关于MongoDB 的包。
4. 使用 rm -r /var/lib/mongo 删除 MongoDB 的数据目录。(注:系统会多次提示是否删除,可使用 rm –f 命令强制删除,不会弹出多次询问,谨慎使用)

5. 使用 rm -r /var/log/mongodb 删除 MongoDB 的日志记录。

6. 使用 rm /etc/mongod.conf 删除 MongoDB 的配置文件,前两条命令会将文件移至 /etc 目录下,如下图所示。

7. 使用 systemctl status mongod 检验成果。


  yum 安装

  • 自动化软件的安装、更新、配置和移除,无需担心依赖关系或手动下载和安装软件包。yum 保存的是 rpm 包。

1. 使用 rpm --import https://www.mongodb.org/static/pgp/server-4.4.asc 导入 MongoDB 的 GPA 公钥,确保下载的安装包是官方的。
2. 使用 vi /etc/yum.repos.d/mongodb-org-4.4.repo 编辑MongoDB 4.4 版本的仓库配置。

3. 使用 yum install -y mongodb-org 安装 MongoDB。
4. 安装成功后使用 systemctl start mongod 启动服务并使用 systemctl status mongod 查看服务状态。


yum 卸载

1. 使用 systemctl stop mongod 停止服务。
2. 使用 yum remove mongodb-org* 卸载之前安装的包。
3. 分别使用 rm -r /var/lib/mongodb 和 rm -r /var/log/mongodb 删除 MongoDB 的数据目录和日志记录。
4. 卸载完成后使用 systemctl status mongod 检查成果。

docker 安装

  • 侧重于整个应用环境的管理,以容器的形式封装、部署应用程序。docker 镜像仓库保存的是 docker 镜像。

1. 使用 systemctl start docker 启动 Docker。
2. 使用 docker pull mongo:4.4 或 latest 拉取 MongoDB 镜像。

3. 使用 docker run --name 【容器名】 -d mongo 运行 MongoDB 容器。
4. 使用 docker exec -it 【容器名】 mongo 进入 MongoDB 的 Shell。


docker 卸载

1. 使用 docker ps 查看当前正在运行的容器。
2. 使用 docker stop 【容器名】停止容器的运行。
3. 使用 docker rm 【容器名】删除容器。
4. 使用 docker ps –-all 查看所有容器。


配置 MongoDB

  • 不同的配方,同样的味道~

1. 使用 systemctl start mongod.service 启动服务。默认无认证登录方式。
2. 使用 systemctl status mongod.service 查看服务状态。 

3. 使用 mongo admin 进入 MongoDB 的 【admin】数据库。没有指定数据库,MongoDB 会使用一个名为【test】的默认数据库,该数据库存储在 data 目录中。
4. 进入成功后在最后一行使用 “>”表示命令行光标起始位置。
5. 输入db.createUser({user:'mongoAdmin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},'readWriteAnyDatabase']})
创建用户

6. “user”是新用户的名称,“pwd”是密码。
7. “role”是权限,“db”是数据库名。如“role”:“readWrite”,“db”:“myDatabase”是对“myDatabase”数据库具有读写权限。
8. 常见的 db:admin(管理用户和角色)、local(存储本地集合)、config(存储分片集群的配置信息)。

9. 使用 db.getUsers() 查看当前系统上的所有用户信息。
10. 使用 db.auth(‘用户名’,‘密码’)进行认证,成功返回“1”。注:开启登录认证后,需要使用
 mongo admin 进入【admin】数据库才可以使用 db.auth 命令进行登录。
11. 使用 ctrl + c 退出 MongoDB 进程。

12. 删除用户命令:db.dropUser(‘用户名’)

开启登录认证与远程登录

1. 在 Linux 命令行输入 vi /etc/mongod.conf 进入 MongoDB 的配置文件。

2. 找到 network 配置与 security 配置,配置效果如下图所示。

3. 保存后,使用 systemctl restart mongod.service、systemctl status mongod.service 重启 mongoDB服务
4. 开启登录认证后的成功案例,认证后使用 db.getUsers() 验证是否登录。

5. 失败案例,提示权限不足。


docker 配置 MongoDB

使用环境变量配置
  • 设置初始的 root 用户、密码、数据库
docker run --name some-mongo -d \-e MONGO_INITDB_ROOT_USERNAME=admin \-e MONGO_INITDB_ROOT_PASSWORD=password \-e MONGO_INITDB_DATABASE=mydatabase \mongo
使用配置文件 mongod.conf
  • 挂载自定义的 mongod.conf 到容器中实现配置
docker run --name some-mongo -d \-v /etc/mongo/mongod.conf:/etc/mongo/mongod.conf \-v /data/db:/data/db \mongo --config /etc/mongo/mongod.conf

GUI 可视化界面

  • 充分展现与 SQL 的不同

 远程登录说明

studio3t官方下载icon-default.png?t=N7T8https://studio3t.com/

1. 使用上方网址下载图形界面化软件。
2. 在 Linux 系统中已经配置好 MongoDB 的网络接口和登录认证。

 3. Linux 的网卡配置中有仅主机模式。

MongoDB 的 CURD

  • 常用语法

MongoDB 概念解析

MongoDB 与 MySQL 比较

图片来源于:菜鸟教程
表格来源于:菜鸟教程
图片来源于:菜鸟教程
  • 文档的数据结构和 JSON 基本一样。
  • 所有存储在集合中的数据都是 BSON 格式。
  • BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

Create 创建

创建数据库:use dbname
如果数据库不存在,则创建数据库,否则切换到指定数据库。
在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档
(记录),集合才会真正创建。
通过 db 来查看当前使用的数据库
创建集合:db.createCollection(“集合名”)
插入文档:db.集合名.insert(document) || db.集合名.save(document)

Update 更新

更新文档:db.集合名.update({查询条件},{$set:{更新内容}},{upsert: <boolean>,multi: <boolean>,}
)
upsert: 默认为false ,如果查询不到数据,则把跟新输入插入
multi:默认为false,默认只改一条,true,更改多条

Read 读取

查看所有数据库:show dbs
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
查看集合:show collections / show tables
删除文档:db.集合名称.remove( , { justOne: } ) 
非结构化显示所有文档:db.collection.find(query) 
格式化显示所有文档:db.col.find().pretty()

Delete 删除

删除当前数据库:db.dropDatabase()
删除集合:db.集合名.drop()
删除文档:db.collection.remove(<query>,{justOne: <boolean>,writeConcern: <document>}
)
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。


Java 连接 MongoDB

1. 添加 Maven 仓库依赖坐标
 <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver --><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.4.2</version></dependency><!-- https://mvnrepository.com/artifact/org.mongodb/bson --><dependency><groupId>org.mongodb</groupId><artifactId>bson</artifactId><version>4.2.3</version></dependency><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.9</version></dependency>
2. 创建 MondoDBConn.java 工具类
  • 类似于 JDBC 连接 MySQL 数据库
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;public class MongoConn {public static MongoClient mc =null;public static MongoDatabase db = null;//测试用例public static void main(String[] args) {GetConn();//获取库中集合MongoIterable<String> collist = db.listCollectionNames();for(String s:collist) {System.out.println("mongo数据库中的集合:"+s);}ConnClose();}//连接数据库public static void GetConn() {mc =new MongoClient("localhost",27017);db = mc.getDatabase("Device");}//关闭连接public static void ConnClose() {mc.close();}
}

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

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

相关文章

如何把mkv转成mp4?介绍一下将mkv转成MP4的几种方法

如何把mkv转成mp4&#xff1f;如果你有一个MKV格式的视频文件&#xff0c;但是需要将其转换为MP4格式以便更广泛地在各种设备和平台上播放和共享&#xff0c;你可以通过进行简单的文件格式转换来实现。转换MKV到MP4格式可以提供更好的兼容性&#xff0c;并确保你的视频文件能够…

在预训练语言模型主流架构

文章目录 编码器-解码器架构因果解码器架构前缀解码器架构在预训练语言模型时代,自然语言处理领域广泛采用了预训练 + 微调的范式,并诞生了以 BERT 为代表的编码器(Encoder-only)架构、以 GPT 为代表的解码器(Decoder-only)架构和以 T5 为代表的编码器-解码器(Encoder-d…

React:tabs或标签页自定义右击菜单内容,支持内嵌iframe关闭菜单方案

React&#xff1a;tabs或标签页自定义右击菜单内容&#xff0c;支持内嵌iframe关闭菜单方案 不管是react、vue还是原生js&#xff0c;原理是一样的。 注意如果内嵌iframe情况下&#xff0c;iframe无法使用事件监听&#xff0c;但是可以使用iframe的任何点击行为都会往父级wind…

入门Java爬虫:认识其基本概念和应用方法

Java爬虫初探&#xff1a;了解它的基本概念与用途&#xff0c;需要具体代码示例 随着互联网的快速发展&#xff0c;获取并处理大量的数据成为企业和个人不可或缺的一项任务。而爬虫&#xff08;Web Scraping&#xff09;作为一种自动化的数据获取方法&#xff0c;不仅能够快速…

vue2(vue-cli3x[vue.config.js])使用cesium新版(1.117.0)配置过程

看来很多解决方法都没有办法&#xff0c;最后终于。呜呜呜呜 这里我用的是vue-cli去搭建的项目的vue2 项目&#xff0c;其实不建议用vue2搭配cesium。因为目前cesium停止了对vue2的版本更新&#xff0c;现在默认安装都是vue3版本&#xff0c;因此需要控制版本&#xff0c;否则…

Node.js简介

一&#xff1a;Node.js简介 Node.js是一个跨平台的JavaScript运行环境&#xff0c;使开发者可以搭建服务器端的JavaScript应用程序 作用&#xff1a;使用Node.js编写服务器端程序 编写数据接口&#xff0c;提供网页资源浏览功能有利于前端工程化&#xff0c;可以集成各种开发…

【力扣高频题】011. 盛最多水的容器

前面的算法文章&#xff0c;更新了许多 专题系列 。包括&#xff1a;滑动窗口、动态规划、加强堆、二叉树递归套路 等。 还没读过的小伙伴可以关注一下&#xff0c;在主页中点击对应链接查看哦~ 接下来的一段时间&#xff0c;将持续 「力扣高频题」 系列文章&#xff0c;想刷 …

idea2024使用springboot3.x系列新建java项目,使用jdk17,启动项目报错

身为一名开发人员&#xff0c;敲代码无数&#xff0c;竟被一个小小启动给我卡了大半天&#xff0c;太丢脸了 报错一&#xff1a;Field infoSysRepository in com.erectile.Impl.PersonalInfoServiceImpl required a bean of type ‘com.erectile.jpa.repository.InfoSysReposit…

IP地址与在线教育平台资源分配优化

IP地址的资源分配与优化策略可以帮助在线教育平台提供更高质量、稳定且个性化的教育服务。 IP地址作为网络设备的标识符&#xff0c;能够为在线教育平台提供有关学生地理位置和网络环境信息。通过对学生IP地址的分析&#xff0c;平台可以初步了解学生所在的地区、网络服务提供商…

回收站的照片删除了怎么找回?

大家在日常使用电脑的过程中&#xff0c;难免会遇到不小心删除重要文件的情况&#xff0c;尤其是珍贵的照片。当我们意识到误删照片时&#xff0c;第一反应通常是去回收站找回。然而&#xff0c;如果连回收站的照片都被删除了&#xff0c;该如何恢复呢&#xff1f;本文将详细探…

【MySQL】事务的快照生成时间点和薛定谔的猫相关?

概述 最近因为工作需要&#xff0c;对MySQL的事务处理进行了一系列测试验证&#xff0c;其中&#xff0c;对于MySQL的事务到底时什么时候生成了数据的快照&#xff0c;结果似乎跟薛定谔的猫理念很像&#xff0c;很有意思&#xff1b;过程我贴出来&#xff0c;有兴趣的朋友可以一…

simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方

1&#xff0c;其中包括使用timer模块&#xff0c;以及ADC都无法产生中断&#xff0c;需要注意的地方 原来是需要在配置文件里开启一下timer的中断&#xff0c;其他模块自动加载ioc就可以了&#xff0c;这个timer需要注意力&#xff0c;需要自己勾选一下 如下图&#xff1a; 看…

致敬经典:在国产开源操作系统 RT-Thread 重温 UNIX 彩色终端

引言 上篇文章里我们向大家介绍了 RT-Thread v5.1.0 的一些新特性。其中包括了终端环境的进一步完善。终端是人机交互的重要接口。实用的终端工具可以显著地提升系统使用者的幸福指数。举例来说&#xff0c;当我们想要修改一些系统配置&#xff0c;或是编写脚本时&#xff0c;一…

Linux——echo命令,管道符,vi/vim 文本编辑器

1.echo 命令 作用 向终端设备上输出字符串或变量的存储数据 格式 echo " 字符串 " echo $ 变 量名 [rootserver ~] # echo $SHELL # 输出变量的值必须加 $ /bin/bash [rootserver ~] # str1" 我爱中国 " # 自定义变量 echo 重定向输出到文件 ec…

MySQL数据库——在Centos7环境安装

MySQL在Centos7环境安装 1.切换root用户 安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;安装好后&#xff0c;普通用户也能使用 2.卸载不要的环境 要将自己环境中有关mysql的全都删除&#xff0c;避免安装过程中被影响 ps axj | grep mariadb 先检查是否有mari…

自制全网最便宜的雷达感应灯光画,成本只需5元

自制全网最便宜的雷达感应灯光画&#xff0c;成本5元 ​ 成本组成&#xff1a;带热释电的人体感应灯&#xff08;0.5元&#xff09;雷达感应模块&#xff08;3.5元&#xff09;首饰盒&#xff08;0.45元&#xff09;微喷油画布&#xff08;1元&#xff09;5.45元 ​ 说一下做灯…

Flutter学习:从搭建环境到运行

一、开发环境的搭建 本文所示内容都是在Windows系统下进行的。 1、下载 Flutter SDK Flutter 官网&#xff08;https://docs.flutter.cn/release/archive?tabwindows&#xff09; 或者通过 git clone -b master https://github.com/flutter/flutter.git 下载 2、配置环境…

[数据集][目标检测]井盖未盖好检测数据集VOC+YOLO格式20123张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;20123 标注数量(xml文件个数)&#xff1a;20123 标注数量(txt文件个数)&#xff1a;20123 标…

.net 奇葩问题调试经历之2——内存暴涨,来自非托管的内存泄露

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔序言 这是一个序列文章,请看以往文…

代码统计工具V1.0.0(支持各种文件类型)

点击下载《代码统计工具&#xff08;支持各种文件类型&#xff09;》 1. 前言 本文介绍了一款使用C#开发的代码行数统计软件。该软件允许用户通过选择文件目录和设置统计项目类型&#xff0c;来统计指定目录下的代码行数。软件提供了三种统计方式&#xff1a;按文件名统计、按…