开源的文档型数据库--MongoDB(安装)

article/2025/11/6 0:52:26

在这里插入图片描述

1、简介

MongoDB 是一个开源的、文档数据库管理系统。它提供了高性能、高可扩展性和高可用性。
MongoDB 使用了一种称为 BSON 的二进制形式的 JSON 来存储数据。这使得 MongoDB 可以轻松地存储各种数据类型,包括大型对象和二进制文件。
MongoDB 的一个重要特性是它的分布式架构。它可以在多台服务器上分布数据,并可以在这些服务器之间进行自动故障转移。这使得 MongoDB 非常适合大规模的数据集,并可以提供高可用性。
MongoDB 还提供了一个强大的查询功能,可以方便地查询和处理数据。它还支持索引和聚合操作,使得对数据进行统计和分析变得更加容易。
而且MongoDB 是最像关系型数据库(MySQL)的非关系型数据库。
总的来说,MongoDB 是一个功能强大且易于使用的数据库管理系统,适用于各种应用场景, 并且可以与其他软件和技术结合使用,比如搜索引擎、消息队列、云计算平台等。

官网:https://www.mongodb.com/

中文网:https://www.mongodb.org.cn/ (可能会有点旧)

2、特点

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。具体特点总结如下:

  1. 面向集合存储,易于存储对象类型的数据
  2. 模式自由
  3. 支持动态查询
  4. 支持完全索引,包含内部对象
  5. 支持复制和故障恢复
  6. 使用高效的二进制数据存储,包括大型对象(如视频等)
  7. 自动处理碎片,以支持云计算层次的扩展性
  8. 支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程 序, 社区中也提供了对Erlang及.NET 等平台的驱动程序
  9. 文件存储格式为 BSON(一种 JSON 的扩展)

3、安装

安装包下载地址:https://www.mongodb.com/try/download/community

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PCUEcU5z-1673343097019)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1672815396737-64843a60-9c10-40be-9eb9-3e2892b9f8d9.png)]

3.1 Windows安装(msi)

下载安装包
image.png
双击进入安装程序。
image.png
Next,下一步。
image.png
image.png
image.png
image.png
image.png
在这个页面中,你可以选择:
选择**Install MongoD as a service **,可以将MongoDB 安装为服务(安装为服务可以使用Windows服务来进行自启动,更加方便,只有选择安装为服务才可以进行下面的配置)

  • **Run service as Network Service user **,即以网络服务用户身份运行服务(默认)
    这是 Windows 内置的 Windows 用户帐户
  • Run Service as a local or domain user, 即以本地或域用户身份运行服务
    对于现有的本地用户帐户,为帐户域指定一个句点(即 .,上图即为该情况)并为用户指定帐户名称和帐户密码。对于现有域用户,指定该用户的帐户域、帐户名称和帐户密码。
  • **Service Name **即服务名称。指定服务名称。默认名称是 MongoDB。如果您已有具有指定名称的服务,则必须选择其他名称。
  • Data Directory 即数据目录。指定数据目录,对应–dbpath。如果目录不存在,安装程序将创建目录并将目录访问权限设置给服务用户。
  • Log Directory 即日志目录。指定Log目录,对应–logpath。如果目录不存在,安装程序将创建目录并将目录访问权限设置给服务用户。

选择完毕后点击next。
image.png
点击install就可以开始安装了。
image.png
image.png
安装完成之后。
image.png
在data目录新建db目录(如果你有就不用了)。
image.png
在log目录下新建mongodb.log文件(如果你有就不用了)。
image.png
在安装目录新建文件mongo.config

dbpath=F:\software\mongoDB\data\db #你的数据库路径logpath=F:\software\mongoDB\log\mongodb.log #日志输出文件路径logappend=true #错误日志采用追加模式journal=true #启用日志文件,默认启用quiet=true #过滤掉无用的日志信息,若需要调试使用请设置为falseport=27017 #端口号 默认为27017

3.1.1 命令行下运行 MongoDB 服务器

为了从命令提示符下运行 MongoDB 服务器,你必须从 MongoDB 目录的 bin 目录中执行 mongod.exe 文件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5oJ5PVuf-1673343097023)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1672820730877-96bac27f-9ef8-46a7-a468-bff4c54a0776.png)]

输入命令运行MongoDB服务:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ptm7E7Vp-1673343097023)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1672820814367-a21e8058-4007-49b2-9b83-7f3405be2577.png)]

mongod --dbpath F:\software\mongoDB\data\db #换成你的地址

image.png
浏览器打开
http://localhost:27017/
image.png
说明启动成功。

3.1.2 安装 MongoDB服务

通过执行** mongod.exe**,使用** --install** 选项来安装服务,使用 **–config **选项来指定之前创建的配置文件。
image.png

mongod --config "F:\software\mongoDB\mongo.config" --install --serviceName "MongoDB"

打开任务管理器。
image.png

3.1.3 配置环境变量

将MongoDB的bin目录的路径加入环境变量
image.png

image.png
image.png

image.png
image.png
image.png
点击确认即可。
image.png

3.2 Linux 安装 (CentOS)

安装包下载地址:https://www.mongodb.com/try/download/community
MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装包。
image.png

3.2.1 安装

安装前我们需要安装 CentOs 平台依赖包。

sudo yum install libcurl openssl

这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) ,wget如果下载得很慢的话,就选择直接下载然后上传即可。image.png

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz # 下载tar -zxvf 包名  # 解压mv 解压后的包名  /usr/local/mongodb  # 将解压包拷贝到指定目录

为 MongoDB 创建数据目录。

 sudo mkdir -p /usr/local/mongodb/data/db

为 MongoDB 创建日志目录。

 sudo mkdir -p /usr/local/mongodb/data/log

设置可读写权限:

sudo chmod 666 db/
sudo chmod 666 log/

在 mongoDB 目录下新建配置文件 mongodb.conf, 使用以下命令创建。

sudo vim /usr/local/mongodb/mongodb.conf

将以下内容添加到文件中:

dbpath=/usr/local/mongodb/data/db #你的数据库路径
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log #日志输出文件路径# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

image.png

3.2.2 配置环境变量

sudo vi /etc/profile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJb2U5bb-1673343097027)(https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/3790/1673328869239-b64ba156-1866-4686-9b08-f8d041db81d4.png)]

source /etc/profile

3.2.3 创建mongoDB服务

使用以下命令创建启动配置文件

vi /lib/systemd/system/mongodb.service

复制粘贴以下内容保存,如果有些地方跟你的不同,记得改一下。

[Unit]Description=mongodbAfter=network.target remote-fs.target nss-lookup.target
[Service]Type=forkingExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdownPrivateTmp=true
[Install]WantedBy=multi-user.target

image.png
重新加载文件:

systemctl daemon-reload

3.2.4 命令

启动:

systemctl start mongodb.service

重启:

systemctl restart mongodb.service

停止:

systemctl stop mongodb.service

开机自启:

systemctl enable mongodb.service

查询服务状态:

systemctl status mongodb.service

4、Docker (个人推荐)

访问 MongoDB 镜像库地址: 。
image.png
image.png
秉着不选最新的原则,我们就选后面一个版本就行了。

docker pull mongo:4.2.23

image.png
安装完成后,我们可以使用以下命令来运行 mongo 容器:

docker run --name mongo -p 27017:27017 -d mongo:4.2.23 --auth

参数说明:

  • –**name mongo **:给容器起一个名字。
  • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
  • -d : 后台运行。
  • –auth:需要密码才能访问容器服务。

温馨提示:端口号可以换成其他的,毕竟27017是默认端口容器被攻击.
image.png
使用以下命令添加用户和设置密码,并且尝试连接。

docker exec -it mongo mongo admin

image.png
创建一个名为 admin,密码为 123456 的用户。

db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

image.png
使用上面创建的用户信息进行连接。

db.auth('admin', '123456')

image.png

5、使用数据库可视化工具连接

image.png

image.png


http://chatgpt.dhexx.cn/article/lAV9FugH.shtml

相关文章

数据库文件

数据库由 存储在 硬件设备上的信息组成。 而 mysql 、sqlist 等只是数据库系统, 在 数据库 使用者 和 储存在 硬件上面的 数据 之间建立联系的桥梁。 最终, 我们存储在数据库里面的信息会以 文件(或内存)的形式展示在操作系统上。 如 Ubuntu16.04 &a…

文档数据库-MongoDB

文章目录 前言优点MongoDB 使用广泛MongoDB 性能高MongoDB 支持分布式安装和部署容易MongoDB 便于开发 MongoDB的文档数据模型NoSQL 中的文档数据库MongoDB 文档数据模型 MongoDB的文档存储结构键值对文档集合数据库 前言 MongoDB 是一个开源文档数据库,提供高性能…

MongoDB文档数据库

一,引言 MongoDB 是一个开源的文档数据库,并是领先的NoSQL数据库。 MongoDB 是由C语言编写。 通过本系列教程的讲解,使得学习者可以了解并掌握创建和部署高度可扩展和高性能的面向对象数据库MongoDB概念和理解。 该系列教程是专为软件专业人员…

NOSQL,MongoDB是什么?

什么是MongoDB ? MongoDB 是一个开源的文档数据库,它基于 C 语言编写,性能高,可用性强,能够自动扩展。 MongoDB 是最流行的 NoSQL 数据库之一,原生支持分布式集群架构,特别适合处理大数据&…

胖人瘦下来后,会长高或变矮吗?

一个还算高的胖子,单看是不显矮的,但正所谓没有对比就没有伤害,若将他与一个跟他一般高的瘦人排在一起,就会无端显得矮了一截,当然也只是“显得”矮而已,并非真的矮。 那么,他们要是瘦下来后会…

PTA 7-40 到底是不是太胖了

很明显题目中有绝对值&#xff0c;需要调用绝对值函数。 整形绝对值&#xff1a;abs函数 双精度浮点型绝对值&#xff1a;fabs函数 长整型绝对值&#xff1a;labs函数 他们的头文件都是include<math.h>或者include<stdlib.h> 接着一个for循环就可以解决问题。…

PTA题目 到底是不是太胖了

据说一个人的标准体重应该是其身高&#xff08;单位&#xff1a;厘米&#xff09;减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材&#xff08;即 | 真实体重 − 标准体重 | < 标准体重10%&#xff09;。已知市斤是公斤的两倍。现给定一群人…

[模板]详细设计说明书(整理版)【申明:来源于网络】

[模板]详细设计说明书&#xff08;整理版&#xff09;【申明&#xff1a;来源于网络】 地址&#xff1a;http://www.doc88.com/p-0724366501067.html

模板设计模式

模板设计模式—基于抽象类的&#xff0c;核心是封装算法 模板方法定义了一个算法的步骤&#xff0c;并允许子类为一个或多个步骤提供具体实现模板&#xff08;模板方法&#xff09;模式&#xff08;Servlet、AQS&#xff09; 在一个方法中定义一个算法的骨架&#xff0c;并将一…

资深码农教你写详细设计(附示例模板)

很多小伙伴都不知道怎么写详细设计&#xff0c;本期就带大家看一下详细设计都有哪些内容。 喜欢听我叨叨的&#xff0c;直接看视频 资深码农教你写详细设计&#xff08;附模板&#xff09; 不同的公司&#xff0c;详细设计不太一样&#xff0c;有的细&#xff0c;有的粗&#x…

【零基础深度学习教程第二课:深度学习进阶之神经网络的训练】

深度学习进阶之神经网络的训练 神经网络训练优化一、数据集1.1 数据集分类1.2 数据集的划分1.3 同源数据集的重要性1.4 无测试集的情况 二、偏差与方差2.1 概念定义2.1.1 偏差&#xff08;bias&#xff09;2.1.2 方差&#xff08;variance&#xff09; 2.2 图形定义2.3 衡量偏差…

深度学习小白入门教程-基础运用篇

深度学习小白入门教程-基础运用篇 可能有图片没部署成功&#xff0c;如果有影响&#xff0c;请回小主主页PyCharm玩个文本类数据二分类第一步&#xff0c;把我们可能用到的包安排上&#xff0c;还有python的标准主函数~第二步&#xff0c;导入数据集&#xff0c;cv大法就好啦~第…

深度学习(一、入门)

从人工智能开始 让机器具有人类的智能&#xff0c;能够理解人类语言、语音、图片、视频以及各种人类活动数据&#xff0c;并以此为依托辅助甚至代替人类做出决策&#xff0c;是人工智能的终极目标。最早提到机器智能的是图灵&#xff0c;1950年&#xff0c;他提出机器是否拥有…

深度学习如何入门?

beanfrog &#xff0c;computer vision 161 人赞同 先了解个大概 A Deep Learning Tutorial: From Perceptrons to Algorithms 神经网络肯定是要学习的&#xff0c;主要是BP算法&#xff0c;可以看看PRML3、4、5三章&#xff0c;可先忽略其中的贝叶斯视角的解释。一些主要的算…

深度学习实战之Python教程(1)

Python入门教程 以熟练使用Pytorch完成深度学习模型为目标&#xff0c;简单介绍Pytorch涉及到的Python基础&#xff08;Python其它知识可以在遇到后再学习&#xff0c;先动手&#xff09;。 这篇教程并不涉及Python的复杂方法&#xff0c;教程的结构如下&#xff1a; 1…

深度学习教程(3) | 浅层神经网络(吴恩达·完整版)

作者&#xff1a;韩信子ShowMeAI教程地址&#xff1a;https://www.showmeai.tech/tutorials/35本文地址&#xff1a;https://www.showmeai.tech/article-detail/214声明&#xff1a;版权所有&#xff0c;转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

《深度学习入门》(一)

感知机&#xff08;perceptron&#xff09; 感知机是由美国学者Frank Rosenblatt在1957年提出的。 学习原因&#xff1a;作为神经网络&#xff08;深度学习&#xff09;的起源算法。学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。 1. 感知机是什么 感知机…

深度学习基础学习

CNN发展&#xff1a;BP--LeNet(标志CNN面世&#xff09;--Deep learning(2012) 卷积神经网络CNN&#xff1a;包含卷积层的神经网络 利用BP&#xff08;反向传播&#xff09;算法训练LeNet5网络 检索、目标检测、图像分割、图像描述 全连接层&#xff1a;神经元全连接 BP算法…

【深度学习基础】

最终效果如上图所示&#xff1a;真不知道这一路有多艰难 众所周知CHATGPT 可以做表格和 公式 &#xff0c;但它输出的文本是直接渲染好的 你是直接复制不了的&#xff0c;你只能复制它出来的字体 于是我尝试了各种 想让它输出表格和文字的方法 包括且不限于 去控制台看它输出…

深度学习教程(2) | 神经网络基础(吴恩达·完整版)

作者&#xff1a;韩信子ShowMeAI教程地址&#xff1a;https://www.showmeai.tech/tutorials/35本文地址&#xff1a;https://www.showmeai.tech/article-detail/213声明&#xff1a;版权所有&#xff0c;转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…